KILLED proof of input_5r6HPFxuoU.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) RelTrsToWeightedTrsProof [UPPER BOUND(ID), 0 ms] (6) CpxWeightedTrs (7) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (8) CpxTypedWeightedTrs (9) CompletionProof [UPPER BOUND(ID), 0 ms] (10) CpxTypedWeightedCompleteTrs (11) NarrowingProof [BOTH BOUNDS(ID, ID), 1913 ms] (12) CpxTypedWeightedCompleteTrs (13) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (14) CpxRNTS (15) InliningProof [UPPER BOUND(ID), 7547 ms] (16) CpxRNTS (17) SimplificationProof [BOTH BOUNDS(ID, ID), 161 ms] (18) CpxRNTS (19) CpxRntsAnalysisOrderProof [BOTH BOUNDS(ID, ID), 0 ms] (20) CpxRNTS (21) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (22) CpxRNTS (23) IntTrsBoundProof [UPPER BOUND(ID), 223 ms] (24) CpxRNTS (25) IntTrsBoundProof [UPPER BOUND(ID), 8 ms] (26) CpxRNTS (27) ResultPropagationProof [UPPER BOUND(ID), 12 ms] (28) CpxRNTS (29) IntTrsBoundProof [UPPER BOUND(ID), 104 ms] (30) CpxRNTS (31) IntTrsBoundProof [UPPER BOUND(ID), 25 ms] (32) CpxRNTS (33) ResultPropagationProof [UPPER BOUND(ID), 10 ms] (34) CpxRNTS (35) IntTrsBoundProof [UPPER BOUND(ID), 147 ms] (36) CpxRNTS (37) IntTrsBoundProof [UPPER BOUND(ID), 20 ms] (38) CpxRNTS (39) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (40) CpxRNTS (41) IntTrsBoundProof [UPPER BOUND(ID), 193 ms] (42) CpxRNTS (43) IntTrsBoundProof [UPPER BOUND(ID), 3 ms] (44) CpxRNTS (45) ResultPropagationProof [UPPER BOUND(ID), 17 ms] (46) CpxRNTS (47) IntTrsBoundProof [UPPER BOUND(ID), 341 ms] (48) CpxRNTS (49) IntTrsBoundProof [UPPER BOUND(ID), 75 ms] (50) CpxRNTS (51) ResultPropagationProof [UPPER BOUND(ID), 15 ms] (52) CpxRNTS (53) IntTrsBoundProof [UPPER BOUND(ID), 123 ms] (54) CpxRNTS (55) IntTrsBoundProof [UPPER BOUND(ID), 43 ms] (56) CpxRNTS (57) ResultPropagationProof [UPPER BOUND(ID), 1 ms] (58) CpxRNTS (59) IntTrsBoundProof [UPPER BOUND(ID), 235 ms] (60) CpxRNTS (61) IntTrsBoundProof [UPPER BOUND(ID), 90 ms] (62) CpxRNTS (63) ResultPropagationProof [UPPER BOUND(ID), 34 ms] (64) CpxRNTS (65) CompletionProof [UPPER BOUND(ID), 124 ms] (66) CpxTypedWeightedCompleteTrs (67) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (68) CpxRNTS (69) CpxTrsToCdtProof [UPPER BOUND(ID), 0 ms] (70) CdtProblem (71) CdtLeafRemovalProof [ComplexityIfPolyImplication, 0 ms] (72) CdtProblem (73) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (74) CdtProblem (75) CdtUsableRulesProof [BOTH BOUNDS(ID, ID), 0 ms] (76) CdtProblem (77) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (78) CdtProblem (79) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (80) CdtProblem (81) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (82) CdtProblem (83) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (84) CdtProblem (85) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (86) CdtProblem (87) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (88) CdtProblem (89) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (90) CdtProblem (91) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (92) CdtProblem (93) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (94) CdtProblem (95) CdtLeafRemovalProof [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) CdtRuleRemovalProof [UPPER BOUND(ADD(n^1)), 511 ms] (104) CdtProblem (105) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (106) CdtProblem (107) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (108) CdtProblem (109) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (110) CdtProblem (111) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (112) CdtProblem (113) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (114) CdtProblem (115) CdtRuleRemovalProof [UPPER BOUND(ADD(n^1)), 465 ms] (116) CdtProblem (117) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (118) CdtProblem (119) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (120) CdtProblem (121) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (122) CdtProblem (123) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (124) CdtProblem (125) CdtRuleRemovalProof [UPPER BOUND(ADD(n^1)), 699 ms] (126) CdtProblem (127) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (128) CdtProblem (129) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 1 ms] (130) CdtProblem (131) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (132) CdtProblem (133) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (134) CdtProblem (135) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 15 ms] (136) CdtProblem (137) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (138) CdtProblem (139) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (140) CdtProblem (141) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (142) CdtProblem (143) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (144) CdtProblem (145) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (146) CdtProblem (147) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (148) CdtProblem (149) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (150) CdtProblem (151) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 3 ms] (152) CdtProblem (153) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (154) CdtProblem (155) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 12 ms] (156) CdtProblem (157) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (158) CdtProblem (159) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (160) CdtProblem (161) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (162) CdtProblem (163) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (164) CdtProblem (165) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (166) CdtProblem (167) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (168) CdtProblem (169) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (170) CdtProblem (171) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (172) CdtProblem (173) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (174) CdtProblem (175) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (176) CdtProblem (177) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (178) CdtProblem (179) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (180) CdtProblem (181) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (182) CdtProblem (183) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (184) CdtProblem (185) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (186) CdtProblem (187) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (188) CdtProblem (189) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (190) CdtProblem (191) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (192) CdtProblem (193) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (194) CdtProblem (195) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (196) CdtProblem (197) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (198) CdtProblem (199) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (200) CdtProblem (201) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (202) CdtProblem (203) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 12 ms] (204) CdtProblem (205) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (206) CdtProblem (207) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 16 ms] (208) CdtProblem (209) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (210) CdtProblem (211) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (212) CdtProblem (213) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (214) CdtProblem (215) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (216) CdtProblem (217) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (218) CdtProblem (219) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (220) CdtProblem (221) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (222) CdtProblem (223) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (224) CdtProblem (225) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (226) CdtProblem (227) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (228) CdtProblem (229) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (230) CdtProblem (231) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 12 ms] (232) CdtProblem (233) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (234) CdtProblem (235) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (236) CdtProblem (237) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (238) CdtProblem (239) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (240) CdtProblem (241) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (242) CdtProblem (243) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (244) CdtProblem (245) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (246) CdtProblem (247) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 3 ms] (248) CdtProblem (249) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (250) CdtProblem (251) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 9 ms] (252) CdtProblem (253) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (254) 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: isEmpty(cons(x, xs)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(x)) -> false head(cons(x, xs)) -> x tail(cons(x, xs)) -> xs tail(nil) -> nil append(nil, x) -> cons(x, nil) append(cons(y, ys), x) -> cons(y, append(ys, x)) p(s(s(x))) -> s(p(s(x))) p(s(0)) -> 0 p(0) -> 0 inc(s(x)) -> s(inc(x)) inc(0) -> s(0) addLists(xs, ys, zs) -> if(isEmpty(xs), isEmpty(ys), isZero(head(xs)), tail(xs), tail(ys), cons(p(head(xs)), tail(xs)), cons(inc(head(ys)), tail(ys)), zs, append(zs, head(ys))) if(true, true, b, xs, ys, xs2, ys2, zs, zs2) -> zs if(true, false, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError if(false, true, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError if(false, false, false, xs, ys, xs2, ys2, zs, zs2) -> addLists(xs2, ys2, zs) if(false, false, true, xs, ys, xs2, ys2, zs, zs2) -> addLists(xs, ys, zs2) addList(xs, ys) -> addLists(xs, ys, nil) 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: isEmpty(cons(x, xs)) -> false isEmpty(nil) -> true isZero(0') -> true isZero(s(x)) -> false head(cons(x, xs)) -> x tail(cons(x, xs)) -> xs tail(nil) -> nil append(nil, x) -> cons(x, nil) append(cons(y, ys), x) -> cons(y, append(ys, x)) p(s(s(x))) -> s(p(s(x))) p(s(0')) -> 0' p(0') -> 0' inc(s(x)) -> s(inc(x)) inc(0') -> s(0') addLists(xs, ys, zs) -> if(isEmpty(xs), isEmpty(ys), isZero(head(xs)), tail(xs), tail(ys), cons(p(head(xs)), tail(xs)), cons(inc(head(ys)), tail(ys)), zs, append(zs, head(ys))) if(true, true, b, xs, ys, xs2, ys2, zs, zs2) -> zs if(true, false, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError if(false, true, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError if(false, false, false, xs, ys, xs2, ys2, zs, zs2) -> addLists(xs2, ys2, zs) if(false, false, true, xs, ys, xs2, ys2, zs, zs2) -> addLists(xs, ys, zs2) addList(xs, ys) -> addLists(xs, ys, nil) 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: isEmpty(cons(x, xs)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(x)) -> false head(cons(x, xs)) -> x tail(cons(x, xs)) -> xs tail(nil) -> nil append(nil, x) -> cons(x, nil) append(cons(y, ys), x) -> cons(y, append(ys, x)) p(s(s(x))) -> s(p(s(x))) p(s(0)) -> 0 p(0) -> 0 inc(s(x)) -> s(inc(x)) inc(0) -> s(0) addLists(xs, ys, zs) -> if(isEmpty(xs), isEmpty(ys), isZero(head(xs)), tail(xs), tail(ys), cons(p(head(xs)), tail(xs)), cons(inc(head(ys)), tail(ys)), zs, append(zs, head(ys))) if(true, true, b, xs, ys, xs2, ys2, zs, zs2) -> zs if(true, false, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError if(false, true, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError if(false, false, false, xs, ys, xs2, ys2, zs, zs2) -> addLists(xs2, ys2, zs) if(false, false, true, xs, ys, xs2, ys2, zs, zs2) -> addLists(xs, ys, zs2) addList(xs, ys) -> addLists(xs, ys, nil) S is empty. Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (5) RelTrsToWeightedTrsProof (UPPER BOUND(ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (6) 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: isEmpty(cons(x, xs)) -> false [1] isEmpty(nil) -> true [1] isZero(0) -> true [1] isZero(s(x)) -> false [1] head(cons(x, xs)) -> x [1] tail(cons(x, xs)) -> xs [1] tail(nil) -> nil [1] append(nil, x) -> cons(x, nil) [1] append(cons(y, ys), x) -> cons(y, append(ys, x)) [1] p(s(s(x))) -> s(p(s(x))) [1] p(s(0)) -> 0 [1] p(0) -> 0 [1] inc(s(x)) -> s(inc(x)) [1] inc(0) -> s(0) [1] addLists(xs, ys, zs) -> if(isEmpty(xs), isEmpty(ys), isZero(head(xs)), tail(xs), tail(ys), cons(p(head(xs)), tail(xs)), cons(inc(head(ys)), tail(ys)), zs, append(zs, head(ys))) [1] if(true, true, b, xs, ys, xs2, ys2, zs, zs2) -> zs [1] if(true, false, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError [1] if(false, true, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError [1] if(false, false, false, xs, ys, xs2, ys2, zs, zs2) -> addLists(xs2, ys2, zs) [1] if(false, false, true, xs, ys, xs2, ys2, zs, zs2) -> addLists(xs, ys, zs2) [1] addList(xs, ys) -> addLists(xs, ys, nil) [1] Rewrite Strategy: INNERMOST ---------------------------------------- (7) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (8) Obligation: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: isEmpty(cons(x, xs)) -> false [1] isEmpty(nil) -> true [1] isZero(0) -> true [1] isZero(s(x)) -> false [1] head(cons(x, xs)) -> x [1] tail(cons(x, xs)) -> xs [1] tail(nil) -> nil [1] append(nil, x) -> cons(x, nil) [1] append(cons(y, ys), x) -> cons(y, append(ys, x)) [1] p(s(s(x))) -> s(p(s(x))) [1] p(s(0)) -> 0 [1] p(0) -> 0 [1] inc(s(x)) -> s(inc(x)) [1] inc(0) -> s(0) [1] addLists(xs, ys, zs) -> if(isEmpty(xs), isEmpty(ys), isZero(head(xs)), tail(xs), tail(ys), cons(p(head(xs)), tail(xs)), cons(inc(head(ys)), tail(ys)), zs, append(zs, head(ys))) [1] if(true, true, b, xs, ys, xs2, ys2, zs, zs2) -> zs [1] if(true, false, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError [1] if(false, true, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError [1] if(false, false, false, xs, ys, xs2, ys2, zs, zs2) -> addLists(xs2, ys2, zs) [1] if(false, false, true, xs, ys, xs2, ys2, zs, zs2) -> addLists(xs, ys, zs2) [1] addList(xs, ys) -> addLists(xs, ys, nil) [1] The TRS has the following type information: isEmpty :: cons:nil:differentLengthError -> false:true cons :: 0:s -> cons:nil:differentLengthError -> cons:nil:differentLengthError false :: false:true nil :: cons:nil:differentLengthError true :: false:true isZero :: 0:s -> false:true 0 :: 0:s s :: 0:s -> 0:s head :: cons:nil:differentLengthError -> 0:s tail :: cons:nil:differentLengthError -> cons:nil:differentLengthError append :: cons:nil:differentLengthError -> 0:s -> cons:nil:differentLengthError p :: 0:s -> 0:s inc :: 0:s -> 0:s addLists :: cons:nil:differentLengthError -> cons:nil:differentLengthError -> cons:nil:differentLengthError -> cons:nil:differentLengthError if :: false:true -> false:true -> false:true -> cons:nil:differentLengthError -> cons:nil:differentLengthError -> cons:nil:differentLengthError -> cons:nil:differentLengthError -> cons:nil:differentLengthError -> cons:nil:differentLengthError -> cons:nil:differentLengthError differentLengthError :: cons:nil:differentLengthError addList :: cons:nil:differentLengthError -> cons:nil:differentLengthError -> cons:nil:differentLengthError Rewrite Strategy: INNERMOST ---------------------------------------- (9) 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: addLists_3 if_9 addList_2 (c) The following functions are completely defined: isEmpty_1 isZero_1 head_1 tail_1 p_1 inc_1 append_2 Due to the following rules being added: isEmpty(v0) -> null_isEmpty [0] head(v0) -> 0 [0] tail(v0) -> null_tail [0] append(v0, v1) -> null_append [0] And the following fresh constants: null_isEmpty, null_tail, null_append ---------------------------------------- (10) 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: isEmpty(cons(x, xs)) -> false [1] isEmpty(nil) -> true [1] isZero(0) -> true [1] isZero(s(x)) -> false [1] head(cons(x, xs)) -> x [1] tail(cons(x, xs)) -> xs [1] tail(nil) -> nil [1] append(nil, x) -> cons(x, nil) [1] append(cons(y, ys), x) -> cons(y, append(ys, x)) [1] p(s(s(x))) -> s(p(s(x))) [1] p(s(0)) -> 0 [1] p(0) -> 0 [1] inc(s(x)) -> s(inc(x)) [1] inc(0) -> s(0) [1] addLists(xs, ys, zs) -> if(isEmpty(xs), isEmpty(ys), isZero(head(xs)), tail(xs), tail(ys), cons(p(head(xs)), tail(xs)), cons(inc(head(ys)), tail(ys)), zs, append(zs, head(ys))) [1] if(true, true, b, xs, ys, xs2, ys2, zs, zs2) -> zs [1] if(true, false, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError [1] if(false, true, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError [1] if(false, false, false, xs, ys, xs2, ys2, zs, zs2) -> addLists(xs2, ys2, zs) [1] if(false, false, true, xs, ys, xs2, ys2, zs, zs2) -> addLists(xs, ys, zs2) [1] addList(xs, ys) -> addLists(xs, ys, nil) [1] isEmpty(v0) -> null_isEmpty [0] head(v0) -> 0 [0] tail(v0) -> null_tail [0] append(v0, v1) -> null_append [0] The TRS has the following type information: isEmpty :: cons:nil:differentLengthError:null_tail:null_append -> false:true:null_isEmpty cons :: 0:s -> cons:nil:differentLengthError:null_tail:null_append -> cons:nil:differentLengthError:null_tail:null_append false :: false:true:null_isEmpty nil :: cons:nil:differentLengthError:null_tail:null_append true :: false:true:null_isEmpty isZero :: 0:s -> false:true:null_isEmpty 0 :: 0:s s :: 0:s -> 0:s head :: cons:nil:differentLengthError:null_tail:null_append -> 0:s tail :: cons:nil:differentLengthError:null_tail:null_append -> cons:nil:differentLengthError:null_tail:null_append append :: cons:nil:differentLengthError:null_tail:null_append -> 0:s -> cons:nil:differentLengthError:null_tail:null_append p :: 0:s -> 0:s inc :: 0:s -> 0:s addLists :: cons:nil:differentLengthError:null_tail:null_append -> cons:nil:differentLengthError:null_tail:null_append -> cons:nil:differentLengthError:null_tail:null_append -> cons:nil:differentLengthError:null_tail:null_append if :: false:true:null_isEmpty -> false:true:null_isEmpty -> false:true:null_isEmpty -> cons:nil:differentLengthError:null_tail:null_append -> cons:nil:differentLengthError:null_tail:null_append -> cons:nil:differentLengthError:null_tail:null_append -> cons:nil:differentLengthError:null_tail:null_append -> cons:nil:differentLengthError:null_tail:null_append -> cons:nil:differentLengthError:null_tail:null_append -> cons:nil:differentLengthError:null_tail:null_append differentLengthError :: cons:nil:differentLengthError:null_tail:null_append addList :: cons:nil:differentLengthError:null_tail:null_append -> cons:nil:differentLengthError:null_tail:null_append -> cons:nil:differentLengthError:null_tail:null_append null_isEmpty :: false:true:null_isEmpty null_tail :: cons:nil:differentLengthError:null_tail:null_append null_append :: cons:nil:differentLengthError:null_tail:null_append Rewrite Strategy: INNERMOST ---------------------------------------- (11) NarrowingProof (BOTH BOUNDS(ID, ID)) Narrowed the inner basic terms of all right-hand sides by a single narrowing step. ---------------------------------------- (12) Obligation: Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: isEmpty(cons(x, xs)) -> false [1] isEmpty(nil) -> true [1] isZero(0) -> true [1] isZero(s(x)) -> false [1] head(cons(x, xs)) -> x [1] tail(cons(x, xs)) -> xs [1] tail(nil) -> nil [1] append(nil, x) -> cons(x, nil) [1] append(cons(y, ys), x) -> cons(y, append(ys, x)) [1] p(s(s(x))) -> s(p(s(x))) [1] p(s(0)) -> 0 [1] p(0) -> 0 [1] inc(s(x)) -> s(inc(x)) [1] inc(0) -> s(0) [1] addLists(xs, ys, zs) -> if(isEmpty(xs), isEmpty(ys), isZero(head(xs)), tail(xs), tail(ys), cons(p(head(xs)), tail(xs)), cons(inc(head(ys)), tail(ys)), zs, append(zs, head(ys))) [1] if(true, true, b, xs, ys, xs2, ys2, zs, zs2) -> zs [1] if(true, false, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError [1] if(false, true, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError [1] if(false, false, false, xs, ys, xs2, ys2, zs, zs2) -> addLists(xs2, ys2, zs) [1] if(false, false, true, xs, ys, xs2, ys2, zs, zs2) -> addLists(xs, ys, zs2) [1] addList(xs, ys) -> addLists(xs, ys, nil) [1] isEmpty(v0) -> null_isEmpty [0] head(v0) -> 0 [0] tail(v0) -> null_tail [0] append(v0, v1) -> null_append [0] The TRS has the following type information: isEmpty :: cons:nil:differentLengthError:null_tail:null_append -> false:true:null_isEmpty cons :: 0:s -> cons:nil:differentLengthError:null_tail:null_append -> cons:nil:differentLengthError:null_tail:null_append false :: false:true:null_isEmpty nil :: cons:nil:differentLengthError:null_tail:null_append true :: false:true:null_isEmpty isZero :: 0:s -> false:true:null_isEmpty 0 :: 0:s s :: 0:s -> 0:s head :: cons:nil:differentLengthError:null_tail:null_append -> 0:s tail :: cons:nil:differentLengthError:null_tail:null_append -> cons:nil:differentLengthError:null_tail:null_append append :: cons:nil:differentLengthError:null_tail:null_append -> 0:s -> cons:nil:differentLengthError:null_tail:null_append p :: 0:s -> 0:s inc :: 0:s -> 0:s addLists :: cons:nil:differentLengthError:null_tail:null_append -> cons:nil:differentLengthError:null_tail:null_append -> cons:nil:differentLengthError:null_tail:null_append -> cons:nil:differentLengthError:null_tail:null_append if :: false:true:null_isEmpty -> false:true:null_isEmpty -> false:true:null_isEmpty -> cons:nil:differentLengthError:null_tail:null_append -> cons:nil:differentLengthError:null_tail:null_append -> cons:nil:differentLengthError:null_tail:null_append -> cons:nil:differentLengthError:null_tail:null_append -> cons:nil:differentLengthError:null_tail:null_append -> cons:nil:differentLengthError:null_tail:null_append -> cons:nil:differentLengthError:null_tail:null_append differentLengthError :: cons:nil:differentLengthError:null_tail:null_append addList :: cons:nil:differentLengthError:null_tail:null_append -> cons:nil:differentLengthError:null_tail:null_append -> cons:nil:differentLengthError:null_tail:null_append null_isEmpty :: false:true:null_isEmpty null_tail :: cons:nil:differentLengthError:null_tail:null_append null_append :: cons:nil:differentLengthError:null_tail:null_append Rewrite Strategy: INNERMOST ---------------------------------------- (13) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: false => 1 nil => 1 true => 2 0 => 0 differentLengthError => 0 null_isEmpty => 0 null_tail => 0 null_append => 0 ---------------------------------------- (14) Obligation: Complexity RNTS consisting of the following rules: addList(z, z') -{ 1 }-> addLists(xs, ys, 1) :|: xs >= 0, z = xs, z' = ys, ys >= 0 addLists(z, z', z'') -{ 1 }-> if(isEmpty(xs), isEmpty(ys), isZero(head(xs)), tail(xs), tail(ys), 1 + p(head(xs)) + tail(xs), 1 + inc(head(ys)) + tail(ys), zs, append(zs, head(ys))) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs append(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 append(z, z') -{ 1 }-> 1 + x + 1 :|: z' = x, z = 1, x >= 0 append(z, z') -{ 1 }-> 1 + y + append(ys, x) :|: z' = x, ys >= 0, y >= 0, x >= 0, z = 1 + y + ys head(z) -{ 1 }-> x :|: z = 1 + x + xs, xs >= 0, x >= 0 head(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> zs :|: z2 = ys, xs >= 0, z' = 2, z6 = zs2, zs >= 0, zs2 >= 0, z3 = xs2, z1 = xs, z4 = ys2, ys2 >= 0, z = 2, b >= 0, xs2 >= 0, z'' = b, ys >= 0, z5 = zs if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(xs, ys, zs2) :|: z2 = ys, xs >= 0, z6 = zs2, z = 1, zs >= 0, zs2 >= 0, z' = 1, z'' = 2, z3 = xs2, z1 = xs, z4 = ys2, ys2 >= 0, xs2 >= 0, ys >= 0, z5 = zs if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(xs2, ys2, zs) :|: z2 = ys, xs >= 0, z6 = zs2, z = 1, zs >= 0, zs2 >= 0, z' = 1, z3 = xs2, z'' = 1, z1 = xs, z4 = ys2, ys2 >= 0, xs2 >= 0, ys >= 0, z5 = zs if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z2 = ys, xs >= 0, z6 = zs2, zs >= 0, zs2 >= 0, z' = 1, z3 = xs2, z1 = xs, z4 = ys2, ys2 >= 0, z = 2, b >= 0, xs2 >= 0, z'' = b, ys >= 0, z5 = zs if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z2 = ys, xs >= 0, z' = 2, z6 = zs2, z = 1, zs >= 0, zs2 >= 0, z3 = xs2, z1 = xs, z4 = ys2, ys2 >= 0, b >= 0, xs2 >= 0, z'' = b, ys >= 0, z5 = zs inc(z) -{ 1 }-> 1 + inc(x) :|: x >= 0, z = 1 + x inc(z) -{ 1 }-> 1 + 0 :|: z = 0 isEmpty(z) -{ 1 }-> 2 :|: z = 1 isEmpty(z) -{ 1 }-> 1 :|: z = 1 + x + xs, xs >= 0, x >= 0 isEmpty(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 isZero(z) -{ 1 }-> 2 :|: z = 0 isZero(z) -{ 1 }-> 1 :|: x >= 0, z = 1 + x p(z) -{ 1 }-> 0 :|: z = 1 + 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 1 }-> 1 + p(1 + x) :|: x >= 0, z = 1 + (1 + x) tail(z) -{ 1 }-> xs :|: z = 1 + x + xs, xs >= 0, x >= 0 tail(z) -{ 1 }-> 1 :|: z = 1 tail(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 ---------------------------------------- (15) InliningProof (UPPER BOUND(ID)) Inlined the following terminating rules on right-hand sides where appropriate: isEmpty(z) -{ 1 }-> 2 :|: z = 1 isEmpty(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 isEmpty(z) -{ 1 }-> 1 :|: z = 1 + x + xs, xs >= 0, x >= 0 isZero(z) -{ 1 }-> 1 :|: x >= 0, z = 1 + x isZero(z) -{ 1 }-> 2 :|: z = 0 head(z) -{ 1 }-> x :|: z = 1 + x + xs, xs >= 0, x >= 0 head(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 ---------------------------------------- (16) Obligation: Complexity RNTS consisting of the following rules: addList(z, z') -{ 1 }-> addLists(xs, ys, 1) :|: xs >= 0, z = xs, z' = ys, ys >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 2, isZero(x), tail(xs), tail(ys), 1 + p(x') + tail(xs), 1 + inc(x'') + tail(ys), zs, append(zs, x1)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, ys = 1, xs = 1 + x + xs', xs' >= 0, x >= 0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, ys = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, isZero(x), tail(xs), tail(ys), 1 + p(x') + tail(xs), 1 + inc(x'') + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, ys = 1, xs = 1 + x + xs', xs' >= 0, x >= 0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, v0 >= 0, ys = v0 addLists(z, z', z'') -{ 6 }-> if(2, 2, isZero(x), tail(xs), tail(ys), 1 + p(x') + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, x'')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, ys = 1, xs = 1 + x + xs', xs' >= 0, x >= 0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0 >= 0, ys = v0, ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(x), tail(xs), tail(ys), 1 + p(x') + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, ys = 1, xs = 1 + x + xs', xs' >= 0, x >= 0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0 >= 0, ys = v0, v0' >= 0, ys = v0' addLists(z, z', z'') -{ 6 }-> if(2, 2, isZero(x), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(x') + tail(ys), zs, append(zs, x'')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, ys = 1, xs = 1 + x + xs', xs' >= 0, x >= 0, v0 >= 0, xs = v0, ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(x), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(x') + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, ys = 1, xs = 1 + x + xs', xs' >= 0, x >= 0, v0 >= 0, xs = v0, ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0' >= 0, ys = v0' addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(x), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, x')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, ys = 1, xs = 1 + x + xs', xs' >= 0, x >= 0, v0 >= 0, xs = v0, v0' >= 0, ys = v0', ys = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, isZero(x), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, ys = 1, xs = 1 + x + xs', xs' >= 0, x >= 0, v0 >= 0, xs = v0, v0' >= 0, ys = v0', v0'' >= 0, ys = v0'' addLists(z, z', z'') -{ 6 }-> if(2, 2, isZero(0), tail(xs), tail(ys), 1 + p(x) + tail(xs), 1 + inc(x') + tail(ys), zs, append(zs, x'')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, ys = 1, v0 >= 0, xs = v0, xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(0), tail(xs), tail(ys), 1 + p(x) + tail(xs), 1 + inc(x') + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, ys = 1, v0 >= 0, xs = v0, xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0' >= 0, ys = v0' addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(0), tail(xs), tail(ys), 1 + p(x) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, x')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, ys = 1, v0 >= 0, xs = v0, xs = 1 + x + xs', xs' >= 0, x >= 0, v0' >= 0, ys = v0', ys = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, isZero(0), tail(xs), tail(ys), 1 + p(x) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, ys = 1, v0 >= 0, xs = v0, xs = 1 + x + xs', xs' >= 0, x >= 0, v0' >= 0, ys = v0', v0'' >= 0, ys = v0'' addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(0), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(x) + tail(ys), zs, append(zs, x')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, ys = 1, v0 >= 0, xs = v0, v0' >= 0, xs = v0', ys = 1 + x + xs', xs' >= 0, x >= 0, ys = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, isZero(0), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(x) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, ys = 1, v0 >= 0, xs = v0, v0' >= 0, xs = v0', ys = 1 + x + xs', xs' >= 0, x >= 0, v0'' >= 0, ys = v0'' addLists(z, z', z'') -{ 4 }-> if(2, 2, isZero(0), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, x)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, ys = 1, v0 >= 0, xs = v0, v0' >= 0, xs = v0', v0'' >= 0, ys = v0'', ys = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 2, isZero(0), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, ys = 1, v0 >= 0, xs = v0, v0' >= 0, xs = v0', v0'' >= 0, ys = v0'', v01 >= 0, ys = v01 addLists(z, z', z'') -{ 7 }-> if(2, 1, isZero(x'), tail(xs), tail(ys), 1 + p(x'') + tail(xs), 1 + inc(x1) + tail(ys), zs, append(zs, x2)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, ys = 1 + x + xs', xs' >= 0, x >= 0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, xs = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, ys = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, ys = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, isZero(x'), tail(xs), tail(ys), 1 + p(x'') + tail(xs), 1 + inc(x1) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, ys = 1 + x + xs', xs' >= 0, x >= 0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, xs = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, ys = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, v0 >= 0, ys = v0 addLists(z, z', z'') -{ 6 }-> if(2, 1, isZero(x'), tail(xs), tail(ys), 1 + p(x'') + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, x1)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, ys = 1 + x + xs', xs' >= 0, x >= 0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, xs = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, v0 >= 0, ys = v0, ys = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(x'), tail(xs), tail(ys), 1 + p(x'') + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, ys = 1 + x + xs', xs' >= 0, x >= 0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, xs = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, v0 >= 0, ys = v0, v0' >= 0, ys = v0' addLists(z, z', z'') -{ 6 }-> if(2, 1, isZero(x'), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(x'') + tail(ys), zs, append(zs, x1)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, ys = 1 + x + xs', xs' >= 0, x >= 0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0 >= 0, xs = v0, ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, ys = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(x'), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(x'') + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, ys = 1 + x + xs', xs' >= 0, x >= 0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0 >= 0, xs = v0, ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, v0' >= 0, ys = v0' addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(x'), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, x'')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, ys = 1 + x + xs', xs' >= 0, x >= 0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0 >= 0, xs = v0, v0' >= 0, ys = v0', ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, isZero(x'), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, ys = 1 + x + xs', xs' >= 0, x >= 0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0 >= 0, xs = v0, v0' >= 0, ys = v0', v0'' >= 0, ys = v0'' addLists(z, z', z'') -{ 6 }-> if(2, 1, isZero(0), tail(xs), tail(ys), 1 + p(x') + tail(xs), 1 + inc(x'') + tail(ys), zs, append(zs, x1)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, ys = 1 + x + xs', xs' >= 0, x >= 0, v0 >= 0, xs = v0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, ys = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(0), tail(xs), tail(ys), 1 + p(x') + tail(xs), 1 + inc(x'') + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, ys = 1 + x + xs', xs' >= 0, x >= 0, v0 >= 0, xs = v0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, v0' >= 0, ys = v0' addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(0), tail(xs), tail(ys), 1 + p(x') + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, x'')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, ys = 1 + x + xs', xs' >= 0, x >= 0, v0 >= 0, xs = v0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0' >= 0, ys = v0', ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, isZero(0), tail(xs), tail(ys), 1 + p(x') + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, ys = 1 + x + xs', xs' >= 0, x >= 0, v0 >= 0, xs = v0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0' >= 0, ys = v0', v0'' >= 0, ys = v0'' addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(0), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(x') + tail(ys), zs, append(zs, x'')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, ys = 1 + x + xs', xs' >= 0, x >= 0, v0 >= 0, xs = v0, v0' >= 0, xs = v0', ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, isZero(0), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(x') + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, ys = 1 + x + xs', xs' >= 0, x >= 0, v0 >= 0, xs = v0, v0' >= 0, xs = v0', ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0'' >= 0, ys = v0'' addLists(z, z', z'') -{ 4 }-> if(2, 1, isZero(0), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, x')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, ys = 1 + x + xs', xs' >= 0, x >= 0, v0 >= 0, xs = v0, v0' >= 0, xs = v0', v0'' >= 0, ys = v0'', ys = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 1, isZero(0), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, ys = 1 + x + xs', xs' >= 0, x >= 0, v0 >= 0, xs = v0, v0' >= 0, xs = v0', v0'' >= 0, ys = v0'', v01 >= 0, ys = v01 addLists(z, z', z'') -{ 6 }-> if(2, 0, isZero(x), tail(xs), tail(ys), 1 + p(x') + tail(xs), 1 + inc(x'') + tail(ys), zs, append(zs, x1)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, v0 >= 0, ys = v0, xs = 1 + x + xs', xs' >= 0, x >= 0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, ys = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, isZero(x), tail(xs), tail(ys), 1 + p(x') + tail(xs), 1 + inc(x'') + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, v0 >= 0, ys = v0, xs = 1 + x + xs', xs' >= 0, x >= 0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, v0' >= 0, ys = v0' addLists(z, z', z'') -{ 5 }-> if(2, 0, isZero(x), tail(xs), tail(ys), 1 + p(x') + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, x'')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, v0 >= 0, ys = v0, xs = 1 + x + xs', xs' >= 0, x >= 0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0' >= 0, ys = v0', ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(x), tail(xs), tail(ys), 1 + p(x') + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, v0 >= 0, ys = v0, xs = 1 + x + xs', xs' >= 0, x >= 0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0' >= 0, ys = v0', v0'' >= 0, ys = v0'' addLists(z, z', z'') -{ 5 }-> if(2, 0, isZero(x), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(x') + tail(ys), zs, append(zs, x'')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, v0 >= 0, ys = v0, xs = 1 + x + xs', xs' >= 0, x >= 0, v0' >= 0, xs = v0', ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(x), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(x') + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, v0 >= 0, ys = v0, xs = 1 + x + xs', xs' >= 0, x >= 0, v0' >= 0, xs = v0', ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0'' >= 0, ys = v0'' addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(x), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, x')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, v0 >= 0, ys = v0, xs = 1 + x + xs', xs' >= 0, x >= 0, v0' >= 0, xs = v0', v0'' >= 0, ys = v0'', ys = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, isZero(x), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, v0 >= 0, ys = v0, xs = 1 + x + xs', xs' >= 0, x >= 0, v0' >= 0, xs = v0', v0'' >= 0, ys = v0'', v01 >= 0, ys = v01 addLists(z, z', z'') -{ 5 }-> if(2, 0, isZero(0), tail(xs), tail(ys), 1 + p(x) + tail(xs), 1 + inc(x') + tail(ys), zs, append(zs, x'')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, v0 >= 0, ys = v0, v0' >= 0, xs = v0', xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(0), tail(xs), tail(ys), 1 + p(x) + tail(xs), 1 + inc(x') + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, v0 >= 0, ys = v0, v0' >= 0, xs = v0', xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0'' >= 0, ys = v0'' addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(0), tail(xs), tail(ys), 1 + p(x) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, x')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, v0 >= 0, ys = v0, v0' >= 0, xs = v0', xs = 1 + x + xs', xs' >= 0, x >= 0, v0'' >= 0, ys = v0'', ys = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, isZero(0), tail(xs), tail(ys), 1 + p(x) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, v0 >= 0, ys = v0, v0' >= 0, xs = v0', xs = 1 + x + xs', xs' >= 0, x >= 0, v0'' >= 0, ys = v0'', v01 >= 0, ys = v01 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(0), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(x) + tail(ys), zs, append(zs, x')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, v0 >= 0, ys = v0, v0' >= 0, xs = v0', v0'' >= 0, xs = v0'', ys = 1 + x + xs', xs' >= 0, x >= 0, ys = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, isZero(0), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(x) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, v0 >= 0, ys = v0, v0' >= 0, xs = v0', v0'' >= 0, xs = v0'', ys = 1 + x + xs', xs' >= 0, x >= 0, v01 >= 0, ys = v01 addLists(z, z', z'') -{ 3 }-> if(2, 0, isZero(0), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, x)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, v0 >= 0, ys = v0, v0' >= 0, xs = v0', v0'' >= 0, xs = v0'', v01 >= 0, ys = v01, ys = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 2 }-> if(2, 0, isZero(0), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1, v0 >= 0, ys = v0, v0' >= 0, xs = v0', v0'' >= 0, xs = v0'', v01 >= 0, ys = v01, v02 >= 0, ys = v02 addLists(z, z', z'') -{ 7 }-> if(1, 2, isZero(x'), tail(xs), tail(ys), 1 + p(x'') + tail(xs), 1 + inc(x1) + tail(ys), zs, append(zs, x2)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, xs = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, ys = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, ys = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, isZero(x'), tail(xs), tail(ys), 1 + p(x'') + tail(xs), 1 + inc(x1) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, xs = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, ys = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, v0 >= 0, ys = v0 addLists(z, z', z'') -{ 6 }-> if(1, 2, isZero(x'), tail(xs), tail(ys), 1 + p(x'') + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, x1)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, xs = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, v0 >= 0, ys = v0, ys = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(x'), tail(xs), tail(ys), 1 + p(x'') + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, xs = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, v0 >= 0, ys = v0, v0' >= 0, ys = v0' addLists(z, z', z'') -{ 6 }-> if(1, 2, isZero(x'), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(x'') + tail(ys), zs, append(zs, x1)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0 >= 0, xs = v0, ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, ys = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(x'), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(x'') + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0 >= 0, xs = v0, ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, v0' >= 0, ys = v0' addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(x'), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, x'')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0 >= 0, xs = v0, v0' >= 0, ys = v0', ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, isZero(x'), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0 >= 0, xs = v0, v0' >= 0, ys = v0', v0'' >= 0, ys = v0'' addLists(z, z', z'') -{ 6 }-> if(1, 2, isZero(0), tail(xs), tail(ys), 1 + p(x') + tail(xs), 1 + inc(x'') + tail(ys), zs, append(zs, x1)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1, v0 >= 0, xs = v0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, ys = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(0), tail(xs), tail(ys), 1 + p(x') + tail(xs), 1 + inc(x'') + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1, v0 >= 0, xs = v0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, v0' >= 0, ys = v0' addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(0), tail(xs), tail(ys), 1 + p(x') + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, x'')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1, v0 >= 0, xs = v0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0' >= 0, ys = v0', ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, isZero(0), tail(xs), tail(ys), 1 + p(x') + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1, v0 >= 0, xs = v0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0' >= 0, ys = v0', v0'' >= 0, ys = v0'' addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(0), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(x') + tail(ys), zs, append(zs, x'')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1, v0 >= 0, xs = v0, v0' >= 0, xs = v0', ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, isZero(0), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(x') + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1, v0 >= 0, xs = v0, v0' >= 0, xs = v0', ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0'' >= 0, ys = v0'' addLists(z, z', z'') -{ 4 }-> if(1, 2, isZero(0), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, x')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1, v0 >= 0, xs = v0, v0' >= 0, xs = v0', v0'' >= 0, ys = v0'', ys = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 2, isZero(0), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1, v0 >= 0, xs = v0, v0' >= 0, xs = v0', v0'' >= 0, ys = v0'', v01 >= 0, ys = v01 addLists(z, z', z'') -{ 7 }-> if(1, 1, isZero(x''), tail(xs), tail(ys), 1 + p(x1) + tail(xs), 1 + inc(x2) + tail(ys), zs, append(zs, x3)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, xs = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, xs = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, ys = 1 + x2 + xs3, xs3 >= 0, x2 >= 0, ys = 1 + x3 + xs4, xs4 >= 0, x3 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, isZero(x''), tail(xs), tail(ys), 1 + p(x1) + tail(xs), 1 + inc(x2) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, xs = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, xs = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, ys = 1 + x2 + xs3, xs3 >= 0, x2 >= 0, v0 >= 0, ys = v0 addLists(z, z', z'') -{ 6 }-> if(1, 1, isZero(x''), tail(xs), tail(ys), 1 + p(x1) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, x2)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, xs = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, xs = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, v0 >= 0, ys = v0, ys = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(x''), tail(xs), tail(ys), 1 + p(x1) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, xs = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, xs = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, v0 >= 0, ys = v0, v0' >= 0, ys = v0' addLists(z, z', z'') -{ 6 }-> if(1, 1, isZero(x''), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(x1) + tail(ys), zs, append(zs, x2)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, xs = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, v0 >= 0, xs = v0, ys = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, ys = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(x''), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(x1) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, xs = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, v0 >= 0, xs = v0, ys = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, v0' >= 0, ys = v0' addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(x''), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, x1)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, xs = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, v0 >= 0, xs = v0, v0' >= 0, ys = v0', ys = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, isZero(x''), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, xs = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, v0 >= 0, xs = v0, v0' >= 0, ys = v0', v0'' >= 0, ys = v0'' addLists(z, z', z'') -{ 6 }-> if(1, 1, isZero(0), tail(xs), tail(ys), 1 + p(x'') + tail(xs), 1 + inc(x1) + tail(ys), zs, append(zs, x2)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0 >= 0, xs = v0, xs = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, ys = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, ys = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(0), tail(xs), tail(ys), 1 + p(x'') + tail(xs), 1 + inc(x1) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0 >= 0, xs = v0, xs = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, ys = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, v0' >= 0, ys = v0' addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(0), tail(xs), tail(ys), 1 + p(x'') + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, x1)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0 >= 0, xs = v0, xs = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, v0' >= 0, ys = v0', ys = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, isZero(0), tail(xs), tail(ys), 1 + p(x'') + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0 >= 0, xs = v0, xs = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, v0' >= 0, ys = v0', v0'' >= 0, ys = v0'' addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(0), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(x'') + tail(ys), zs, append(zs, x1)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0 >= 0, xs = v0, v0' >= 0, xs = v0', ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, ys = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, isZero(0), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(x'') + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0 >= 0, xs = v0, v0' >= 0, xs = v0', ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, v0'' >= 0, ys = v0'' addLists(z, z', z'') -{ 4 }-> if(1, 1, isZero(0), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, x'')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0 >= 0, xs = v0, v0' >= 0, xs = v0', v0'' >= 0, ys = v0'', ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 1, isZero(0), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0 >= 0, xs = v0, v0' >= 0, xs = v0', v0'' >= 0, ys = v0'', v01 >= 0, ys = v01 addLists(z, z', z'') -{ 6 }-> if(1, 0, isZero(x'), tail(xs), tail(ys), 1 + p(x'') + tail(xs), 1 + inc(x1) + tail(ys), zs, append(zs, x2)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, v0 >= 0, ys = v0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, xs = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, ys = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, ys = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, isZero(x'), tail(xs), tail(ys), 1 + p(x'') + tail(xs), 1 + inc(x1) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, v0 >= 0, ys = v0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, xs = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, ys = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, v0' >= 0, ys = v0' addLists(z, z', z'') -{ 5 }-> if(1, 0, isZero(x'), tail(xs), tail(ys), 1 + p(x'') + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, x1)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, v0 >= 0, ys = v0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, xs = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, v0' >= 0, ys = v0', ys = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(x'), tail(xs), tail(ys), 1 + p(x'') + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, v0 >= 0, ys = v0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, xs = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, v0' >= 0, ys = v0', v0'' >= 0, ys = v0'' addLists(z, z', z'') -{ 5 }-> if(1, 0, isZero(x'), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(x'') + tail(ys), zs, append(zs, x1)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, v0 >= 0, ys = v0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0' >= 0, xs = v0', ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, ys = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(x'), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(x'') + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, v0 >= 0, ys = v0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0' >= 0, xs = v0', ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, v0'' >= 0, ys = v0'' addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(x'), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, x'')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, v0 >= 0, ys = v0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0' >= 0, xs = v0', v0'' >= 0, ys = v0'', ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, isZero(x'), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, v0 >= 0, ys = v0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0' >= 0, xs = v0', v0'' >= 0, ys = v0'', v01 >= 0, ys = v01 addLists(z, z', z'') -{ 5 }-> if(1, 0, isZero(0), tail(xs), tail(ys), 1 + p(x') + tail(xs), 1 + inc(x'') + tail(ys), zs, append(zs, x1)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, v0 >= 0, ys = v0, v0' >= 0, xs = v0', xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, ys = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(0), tail(xs), tail(ys), 1 + p(x') + tail(xs), 1 + inc(x'') + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, v0 >= 0, ys = v0, v0' >= 0, xs = v0', xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, v0'' >= 0, ys = v0'' addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(0), tail(xs), tail(ys), 1 + p(x') + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, x'')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, v0 >= 0, ys = v0, v0' >= 0, xs = v0', xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0'' >= 0, ys = v0'', ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, isZero(0), tail(xs), tail(ys), 1 + p(x') + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, v0 >= 0, ys = v0, v0' >= 0, xs = v0', xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0'' >= 0, ys = v0'', v01 >= 0, ys = v01 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(0), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(x') + tail(ys), zs, append(zs, x'')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, v0 >= 0, ys = v0, v0' >= 0, xs = v0', v0'' >= 0, xs = v0'', ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, isZero(0), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(x') + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, v0 >= 0, ys = v0, v0' >= 0, xs = v0', v0'' >= 0, xs = v0'', ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, v01 >= 0, ys = v01 addLists(z, z', z'') -{ 3 }-> if(1, 0, isZero(0), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, x')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, v0 >= 0, ys = v0, v0' >= 0, xs = v0', v0'' >= 0, xs = v0'', v01 >= 0, ys = v01, ys = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(1, 0, isZero(0), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, xs = 1 + x + xs', xs' >= 0, x >= 0, v0 >= 0, ys = v0, v0' >= 0, xs = v0', v0'' >= 0, xs = v0'', v01 >= 0, ys = v01, v02 >= 0, ys = v02 addLists(z, z', z'') -{ 6 }-> if(0, 2, isZero(x), tail(xs), tail(ys), 1 + p(x') + tail(xs), 1 + inc(x'') + tail(ys), zs, append(zs, x1)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, ys = 1, xs = 1 + x + xs', xs' >= 0, x >= 0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, ys = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, isZero(x), tail(xs), tail(ys), 1 + p(x') + tail(xs), 1 + inc(x'') + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, ys = 1, xs = 1 + x + xs', xs' >= 0, x >= 0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, v0' >= 0, ys = v0' addLists(z, z', z'') -{ 5 }-> if(0, 2, isZero(x), tail(xs), tail(ys), 1 + p(x') + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, x'')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, ys = 1, xs = 1 + x + xs', xs' >= 0, x >= 0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0' >= 0, ys = v0', ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(x), tail(xs), tail(ys), 1 + p(x') + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, ys = 1, xs = 1 + x + xs', xs' >= 0, x >= 0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0' >= 0, ys = v0', v0'' >= 0, ys = v0'' addLists(z, z', z'') -{ 5 }-> if(0, 2, isZero(x), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(x') + tail(ys), zs, append(zs, x'')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, ys = 1, xs = 1 + x + xs', xs' >= 0, x >= 0, v0' >= 0, xs = v0', ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(x), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(x') + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, ys = 1, xs = 1 + x + xs', xs' >= 0, x >= 0, v0' >= 0, xs = v0', ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0'' >= 0, ys = v0'' addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(x), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, x')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, ys = 1, xs = 1 + x + xs', xs' >= 0, x >= 0, v0' >= 0, xs = v0', v0'' >= 0, ys = v0'', ys = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, isZero(x), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, ys = 1, xs = 1 + x + xs', xs' >= 0, x >= 0, v0' >= 0, xs = v0', v0'' >= 0, ys = v0'', v01 >= 0, ys = v01 addLists(z, z', z'') -{ 5 }-> if(0, 2, isZero(0), tail(xs), tail(ys), 1 + p(x) + tail(xs), 1 + inc(x') + tail(ys), zs, append(zs, x'')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, ys = 1, v0' >= 0, xs = v0', xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(0), tail(xs), tail(ys), 1 + p(x) + tail(xs), 1 + inc(x') + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, ys = 1, v0' >= 0, xs = v0', xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0'' >= 0, ys = v0'' addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(0), tail(xs), tail(ys), 1 + p(x) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, x')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, ys = 1, v0' >= 0, xs = v0', xs = 1 + x + xs', xs' >= 0, x >= 0, v0'' >= 0, ys = v0'', ys = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, isZero(0), tail(xs), tail(ys), 1 + p(x) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, ys = 1, v0' >= 0, xs = v0', xs = 1 + x + xs', xs' >= 0, x >= 0, v0'' >= 0, ys = v0'', v01 >= 0, ys = v01 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(0), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(x) + tail(ys), zs, append(zs, x')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, ys = 1, v0' >= 0, xs = v0', v0'' >= 0, xs = v0'', ys = 1 + x + xs', xs' >= 0, x >= 0, ys = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, isZero(0), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(x) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, ys = 1, v0' >= 0, xs = v0', v0'' >= 0, xs = v0'', ys = 1 + x + xs', xs' >= 0, x >= 0, v01 >= 0, ys = v01 addLists(z, z', z'') -{ 3 }-> if(0, 2, isZero(0), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, x)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, ys = 1, v0' >= 0, xs = v0', v0'' >= 0, xs = v0'', v01 >= 0, ys = v01, ys = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 2, isZero(0), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, ys = 1, v0' >= 0, xs = v0', v0'' >= 0, xs = v0'', v01 >= 0, ys = v01, v02 >= 0, ys = v02 addLists(z, z', z'') -{ 6 }-> if(0, 1, isZero(x'), tail(xs), tail(ys), 1 + p(x'') + tail(xs), 1 + inc(x1) + tail(ys), zs, append(zs, x2)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, ys = 1 + x + xs', xs' >= 0, x >= 0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, xs = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, ys = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, ys = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, isZero(x'), tail(xs), tail(ys), 1 + p(x'') + tail(xs), 1 + inc(x1) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, ys = 1 + x + xs', xs' >= 0, x >= 0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, xs = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, ys = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, v0' >= 0, ys = v0' addLists(z, z', z'') -{ 5 }-> if(0, 1, isZero(x'), tail(xs), tail(ys), 1 + p(x'') + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, x1)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, ys = 1 + x + xs', xs' >= 0, x >= 0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, xs = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, v0' >= 0, ys = v0', ys = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(x'), tail(xs), tail(ys), 1 + p(x'') + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, ys = 1 + x + xs', xs' >= 0, x >= 0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, xs = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, v0' >= 0, ys = v0', v0'' >= 0, ys = v0'' addLists(z, z', z'') -{ 5 }-> if(0, 1, isZero(x'), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(x'') + tail(ys), zs, append(zs, x1)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, ys = 1 + x + xs', xs' >= 0, x >= 0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0' >= 0, xs = v0', ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, ys = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(x'), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(x'') + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, ys = 1 + x + xs', xs' >= 0, x >= 0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0' >= 0, xs = v0', ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, v0'' >= 0, ys = v0'' addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(x'), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, x'')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, ys = 1 + x + xs', xs' >= 0, x >= 0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0' >= 0, xs = v0', v0'' >= 0, ys = v0'', ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, isZero(x'), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, ys = 1 + x + xs', xs' >= 0, x >= 0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0' >= 0, xs = v0', v0'' >= 0, ys = v0'', v01 >= 0, ys = v01 addLists(z, z', z'') -{ 5 }-> if(0, 1, isZero(0), tail(xs), tail(ys), 1 + p(x') + tail(xs), 1 + inc(x'') + tail(ys), zs, append(zs, x1)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, ys = 1 + x + xs', xs' >= 0, x >= 0, v0' >= 0, xs = v0', xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, ys = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(0), tail(xs), tail(ys), 1 + p(x') + tail(xs), 1 + inc(x'') + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, ys = 1 + x + xs', xs' >= 0, x >= 0, v0' >= 0, xs = v0', xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, v0'' >= 0, ys = v0'' addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(0), tail(xs), tail(ys), 1 + p(x') + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, x'')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, ys = 1 + x + xs', xs' >= 0, x >= 0, v0' >= 0, xs = v0', xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0'' >= 0, ys = v0'', ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, isZero(0), tail(xs), tail(ys), 1 + p(x') + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, ys = 1 + x + xs', xs' >= 0, x >= 0, v0' >= 0, xs = v0', xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0'' >= 0, ys = v0'', v01 >= 0, ys = v01 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(0), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(x') + tail(ys), zs, append(zs, x'')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, ys = 1 + x + xs', xs' >= 0, x >= 0, v0' >= 0, xs = v0', v0'' >= 0, xs = v0'', ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, isZero(0), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(x') + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, ys = 1 + x + xs', xs' >= 0, x >= 0, v0' >= 0, xs = v0', v0'' >= 0, xs = v0'', ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, v01 >= 0, ys = v01 addLists(z, z', z'') -{ 3 }-> if(0, 1, isZero(0), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, x')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, ys = 1 + x + xs', xs' >= 0, x >= 0, v0' >= 0, xs = v0', v0'' >= 0, xs = v0'', v01 >= 0, ys = v01, ys = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 1, isZero(0), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, ys = 1 + x + xs', xs' >= 0, x >= 0, v0' >= 0, xs = v0', v0'' >= 0, xs = v0'', v01 >= 0, ys = v01, v02 >= 0, ys = v02 addLists(z, z', z'') -{ 5 }-> if(0, 0, isZero(x), tail(xs), tail(ys), 1 + p(x') + tail(xs), 1 + inc(x'') + tail(ys), zs, append(zs, x1)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, v0' >= 0, ys = v0', xs = 1 + x + xs', xs' >= 0, x >= 0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, ys = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, isZero(x), tail(xs), tail(ys), 1 + p(x') + tail(xs), 1 + inc(x'') + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, v0' >= 0, ys = v0', xs = 1 + x + xs', xs' >= 0, x >= 0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, v0'' >= 0, ys = v0'' addLists(z, z', z'') -{ 4 }-> if(0, 0, isZero(x), tail(xs), tail(ys), 1 + p(x') + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, x'')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, v0' >= 0, ys = v0', xs = 1 + x + xs', xs' >= 0, x >= 0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0'' >= 0, ys = v0'', ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(x), tail(xs), tail(ys), 1 + p(x') + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, v0' >= 0, ys = v0', xs = 1 + x + xs', xs' >= 0, x >= 0, xs = 1 + x' + xs'', xs'' >= 0, x' >= 0, v0'' >= 0, ys = v0'', v01 >= 0, ys = v01 addLists(z, z', z'') -{ 4 }-> if(0, 0, isZero(x), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(x') + tail(ys), zs, append(zs, x'')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, v0' >= 0, ys = v0', xs = 1 + x + xs', xs' >= 0, x >= 0, v0'' >= 0, xs = v0'', ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(x), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(x') + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, v0' >= 0, ys = v0', xs = 1 + x + xs', xs' >= 0, x >= 0, v0'' >= 0, xs = v0'', ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, v01 >= 0, ys = v01 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(x), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, x')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, v0' >= 0, ys = v0', xs = 1 + x + xs', xs' >= 0, x >= 0, v0'' >= 0, xs = v0'', v01 >= 0, ys = v01, ys = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, isZero(x), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, v0' >= 0, ys = v0', xs = 1 + x + xs', xs' >= 0, x >= 0, v0'' >= 0, xs = v0'', v01 >= 0, ys = v01, v02 >= 0, ys = v02 addLists(z, z', z'') -{ 4 }-> if(0, 0, isZero(0), tail(xs), tail(ys), 1 + p(x) + tail(xs), 1 + inc(x') + tail(ys), zs, append(zs, x'')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, v0' >= 0, ys = v0', v0'' >= 0, xs = v0'', xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, ys = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(0), tail(xs), tail(ys), 1 + p(x) + tail(xs), 1 + inc(x') + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, v0' >= 0, ys = v0', v0'' >= 0, xs = v0'', xs = 1 + x + xs', xs' >= 0, x >= 0, ys = 1 + x' + xs'', xs'' >= 0, x' >= 0, v01 >= 0, ys = v01 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(0), tail(xs), tail(ys), 1 + p(x) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, x')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, v0' >= 0, ys = v0', v0'' >= 0, xs = v0'', xs = 1 + x + xs', xs' >= 0, x >= 0, v01 >= 0, ys = v01, ys = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, isZero(0), tail(xs), tail(ys), 1 + p(x) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, v0' >= 0, ys = v0', v0'' >= 0, xs = v0'', xs = 1 + x + xs', xs' >= 0, x >= 0, v01 >= 0, ys = v01, v02 >= 0, ys = v02 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(0), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(x) + tail(ys), zs, append(zs, x')) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, v0' >= 0, ys = v0', v0'' >= 0, xs = v0'', v01 >= 0, xs = v01, ys = 1 + x + xs', xs' >= 0, x >= 0, ys = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, isZero(0), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(x) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, v0' >= 0, ys = v0', v0'' >= 0, xs = v0'', v01 >= 0, xs = v01, ys = 1 + x + xs', xs' >= 0, x >= 0, v02 >= 0, ys = v02 addLists(z, z', z'') -{ 2 }-> if(0, 0, isZero(0), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, x)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, v0' >= 0, ys = v0', v0'' >= 0, xs = v0'', v01 >= 0, xs = v01, v02 >= 0, ys = v02, ys = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 1 }-> if(0, 0, isZero(0), tail(xs), tail(ys), 1 + p(0) + tail(xs), 1 + inc(0) + tail(ys), zs, append(zs, 0)) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs, v0 >= 0, xs = v0, v0' >= 0, ys = v0', v0'' >= 0, xs = v0'', v01 >= 0, xs = v01, v02 >= 0, ys = v02, v03 >= 0, ys = v03 append(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 append(z, z') -{ 1 }-> 1 + x + 1 :|: z' = x, z = 1, x >= 0 append(z, z') -{ 1 }-> 1 + y + append(ys, x) :|: z' = x, ys >= 0, y >= 0, x >= 0, z = 1 + y + ys head(z) -{ 1 }-> x :|: z = 1 + x + xs, xs >= 0, x >= 0 head(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> zs :|: z2 = ys, xs >= 0, z' = 2, z6 = zs2, zs >= 0, zs2 >= 0, z3 = xs2, z1 = xs, z4 = ys2, ys2 >= 0, z = 2, b >= 0, xs2 >= 0, z'' = b, ys >= 0, z5 = zs if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(xs, ys, zs2) :|: z2 = ys, xs >= 0, z6 = zs2, z = 1, zs >= 0, zs2 >= 0, z' = 1, z'' = 2, z3 = xs2, z1 = xs, z4 = ys2, ys2 >= 0, xs2 >= 0, ys >= 0, z5 = zs if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(xs2, ys2, zs) :|: z2 = ys, xs >= 0, z6 = zs2, z = 1, zs >= 0, zs2 >= 0, z' = 1, z3 = xs2, z'' = 1, z1 = xs, z4 = ys2, ys2 >= 0, xs2 >= 0, ys >= 0, z5 = zs if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z2 = ys, xs >= 0, z6 = zs2, zs >= 0, zs2 >= 0, z' = 1, z3 = xs2, z1 = xs, z4 = ys2, ys2 >= 0, z = 2, b >= 0, xs2 >= 0, z'' = b, ys >= 0, z5 = zs if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z2 = ys, xs >= 0, z' = 2, z6 = zs2, z = 1, zs >= 0, zs2 >= 0, z3 = xs2, z1 = xs, z4 = ys2, ys2 >= 0, b >= 0, xs2 >= 0, z'' = b, ys >= 0, z5 = zs inc(z) -{ 1 }-> 1 + inc(x) :|: x >= 0, z = 1 + x inc(z) -{ 1 }-> 1 + 0 :|: z = 0 isEmpty(z) -{ 1 }-> 2 :|: z = 1 isEmpty(z) -{ 1 }-> 1 :|: z = 1 + x + xs, xs >= 0, x >= 0 isEmpty(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 isZero(z) -{ 1 }-> 2 :|: z = 0 isZero(z) -{ 1 }-> 1 :|: x >= 0, z = 1 + x p(z) -{ 1 }-> 0 :|: z = 1 + 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 1 }-> 1 + p(1 + x) :|: x >= 0, z = 1 + (1 + x) tail(z) -{ 1 }-> xs :|: z = 1 + x + xs, xs >= 0, x >= 0 tail(z) -{ 1 }-> 1 :|: z = 1 tail(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 ---------------------------------------- (17) SimplificationProof (BOTH BOUNDS(ID, ID)) Simplified the RNTS by moving equalities from the constraints into the right-hand sides. ---------------------------------------- (18) Obligation: Complexity RNTS consisting of the following rules: addList(z, z') -{ 1 }-> addLists(z, z', 1) :|: z >= 0, z' >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 addLists(z, z', z'') -{ 7 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 2 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 addLists(z, z', z'') -{ 7 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 addLists(z, z', z'') -{ 7 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(x2) + tail(z'), z'', append(z'', x3)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0, z' = 1 + x3 + xs4, xs4 >= 0, x3 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(x2) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 addLists(z, z', z'') -{ 6 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 1 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0 append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 append(z, z') -{ 1 }-> 1 + y + append(ys, z') :|: ys >= 0, y >= 0, z' >= 0, z = 1 + y + ys append(z, z') -{ 1 }-> 1 + z' + 1 :|: z = 1, z' >= 0 head(z) -{ 1 }-> x :|: z = 1 + x + xs, xs >= 0, x >= 0 head(z) -{ 0 }-> 0 :|: z >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> z5 :|: z1 >= 0, z' = 2, z5 >= 0, z6 >= 0, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z1, z2, z6) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 2, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z3, z4, z5) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 1, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z5 >= 0, z6 >= 0, z' = 1, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z' = 2, z = 1, z5 >= 0, z6 >= 0, z4 >= 0, z'' >= 0, z3 >= 0, z2 >= 0 inc(z) -{ 1 }-> 1 + inc(z - 1) :|: z - 1 >= 0 inc(z) -{ 1 }-> 1 + 0 :|: z = 0 isEmpty(z) -{ 1 }-> 2 :|: z = 1 isEmpty(z) -{ 1 }-> 1 :|: z = 1 + x + xs, xs >= 0, x >= 0 isEmpty(z) -{ 0 }-> 0 :|: z >= 0 isZero(z) -{ 1 }-> 2 :|: z = 0 isZero(z) -{ 1 }-> 1 :|: z - 1 >= 0 p(z) -{ 1 }-> 0 :|: z = 1 + 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 1 }-> 1 + p(1 + (z - 2)) :|: z - 2 >= 0 tail(z) -{ 1 }-> xs :|: z = 1 + x + xs, xs >= 0, x >= 0 tail(z) -{ 1 }-> 1 :|: z = 1 tail(z) -{ 0 }-> 0 :|: z >= 0 ---------------------------------------- (19) CpxRntsAnalysisOrderProof (BOTH BOUNDS(ID, ID)) Found the following analysis order by SCC decomposition: { isEmpty } { isZero } { inc } { tail } { append } { head } { p } { addLists, if } { addList } ---------------------------------------- (20) Obligation: Complexity RNTS consisting of the following rules: addList(z, z') -{ 1 }-> addLists(z, z', 1) :|: z >= 0, z' >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 addLists(z, z', z'') -{ 7 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 2 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 addLists(z, z', z'') -{ 7 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 addLists(z, z', z'') -{ 7 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(x2) + tail(z'), z'', append(z'', x3)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0, z' = 1 + x3 + xs4, xs4 >= 0, x3 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(x2) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 addLists(z, z', z'') -{ 6 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 1 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0 append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 append(z, z') -{ 1 }-> 1 + y + append(ys, z') :|: ys >= 0, y >= 0, z' >= 0, z = 1 + y + ys append(z, z') -{ 1 }-> 1 + z' + 1 :|: z = 1, z' >= 0 head(z) -{ 1 }-> x :|: z = 1 + x + xs, xs >= 0, x >= 0 head(z) -{ 0 }-> 0 :|: z >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> z5 :|: z1 >= 0, z' = 2, z5 >= 0, z6 >= 0, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z1, z2, z6) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 2, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z3, z4, z5) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 1, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z5 >= 0, z6 >= 0, z' = 1, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z' = 2, z = 1, z5 >= 0, z6 >= 0, z4 >= 0, z'' >= 0, z3 >= 0, z2 >= 0 inc(z) -{ 1 }-> 1 + inc(z - 1) :|: z - 1 >= 0 inc(z) -{ 1 }-> 1 + 0 :|: z = 0 isEmpty(z) -{ 1 }-> 2 :|: z = 1 isEmpty(z) -{ 1 }-> 1 :|: z = 1 + x + xs, xs >= 0, x >= 0 isEmpty(z) -{ 0 }-> 0 :|: z >= 0 isZero(z) -{ 1 }-> 2 :|: z = 0 isZero(z) -{ 1 }-> 1 :|: z - 1 >= 0 p(z) -{ 1 }-> 0 :|: z = 1 + 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 1 }-> 1 + p(1 + (z - 2)) :|: z - 2 >= 0 tail(z) -{ 1 }-> xs :|: z = 1 + x + xs, xs >= 0, x >= 0 tail(z) -{ 1 }-> 1 :|: z = 1 tail(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {isEmpty}, {isZero}, {inc}, {tail}, {append}, {head}, {p}, {addLists,if}, {addList} ---------------------------------------- (21) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (22) Obligation: Complexity RNTS consisting of the following rules: addList(z, z') -{ 1 }-> addLists(z, z', 1) :|: z >= 0, z' >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 addLists(z, z', z'') -{ 7 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 2 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 addLists(z, z', z'') -{ 7 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 addLists(z, z', z'') -{ 7 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(x2) + tail(z'), z'', append(z'', x3)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0, z' = 1 + x3 + xs4, xs4 >= 0, x3 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(x2) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 addLists(z, z', z'') -{ 6 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 1 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0 append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 append(z, z') -{ 1 }-> 1 + y + append(ys, z') :|: ys >= 0, y >= 0, z' >= 0, z = 1 + y + ys append(z, z') -{ 1 }-> 1 + z' + 1 :|: z = 1, z' >= 0 head(z) -{ 1 }-> x :|: z = 1 + x + xs, xs >= 0, x >= 0 head(z) -{ 0 }-> 0 :|: z >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> z5 :|: z1 >= 0, z' = 2, z5 >= 0, z6 >= 0, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z1, z2, z6) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 2, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z3, z4, z5) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 1, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z5 >= 0, z6 >= 0, z' = 1, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z' = 2, z = 1, z5 >= 0, z6 >= 0, z4 >= 0, z'' >= 0, z3 >= 0, z2 >= 0 inc(z) -{ 1 }-> 1 + inc(z - 1) :|: z - 1 >= 0 inc(z) -{ 1 }-> 1 + 0 :|: z = 0 isEmpty(z) -{ 1 }-> 2 :|: z = 1 isEmpty(z) -{ 1 }-> 1 :|: z = 1 + x + xs, xs >= 0, x >= 0 isEmpty(z) -{ 0 }-> 0 :|: z >= 0 isZero(z) -{ 1 }-> 2 :|: z = 0 isZero(z) -{ 1 }-> 1 :|: z - 1 >= 0 p(z) -{ 1 }-> 0 :|: z = 1 + 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 1 }-> 1 + p(1 + (z - 2)) :|: z - 2 >= 0 tail(z) -{ 1 }-> xs :|: z = 1 + x + xs, xs >= 0, x >= 0 tail(z) -{ 1 }-> 1 :|: z = 1 tail(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {isEmpty}, {isZero}, {inc}, {tail}, {append}, {head}, {p}, {addLists,if}, {addList} ---------------------------------------- (23) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: isEmpty after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 2 ---------------------------------------- (24) Obligation: Complexity RNTS consisting of the following rules: addList(z, z') -{ 1 }-> addLists(z, z', 1) :|: z >= 0, z' >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 addLists(z, z', z'') -{ 7 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 2 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 addLists(z, z', z'') -{ 7 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 addLists(z, z', z'') -{ 7 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(x2) + tail(z'), z'', append(z'', x3)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0, z' = 1 + x3 + xs4, xs4 >= 0, x3 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(x2) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 addLists(z, z', z'') -{ 6 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 1 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0 append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 append(z, z') -{ 1 }-> 1 + y + append(ys, z') :|: ys >= 0, y >= 0, z' >= 0, z = 1 + y + ys append(z, z') -{ 1 }-> 1 + z' + 1 :|: z = 1, z' >= 0 head(z) -{ 1 }-> x :|: z = 1 + x + xs, xs >= 0, x >= 0 head(z) -{ 0 }-> 0 :|: z >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> z5 :|: z1 >= 0, z' = 2, z5 >= 0, z6 >= 0, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z1, z2, z6) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 2, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z3, z4, z5) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 1, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z5 >= 0, z6 >= 0, z' = 1, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z' = 2, z = 1, z5 >= 0, z6 >= 0, z4 >= 0, z'' >= 0, z3 >= 0, z2 >= 0 inc(z) -{ 1 }-> 1 + inc(z - 1) :|: z - 1 >= 0 inc(z) -{ 1 }-> 1 + 0 :|: z = 0 isEmpty(z) -{ 1 }-> 2 :|: z = 1 isEmpty(z) -{ 1 }-> 1 :|: z = 1 + x + xs, xs >= 0, x >= 0 isEmpty(z) -{ 0 }-> 0 :|: z >= 0 isZero(z) -{ 1 }-> 2 :|: z = 0 isZero(z) -{ 1 }-> 1 :|: z - 1 >= 0 p(z) -{ 1 }-> 0 :|: z = 1 + 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 1 }-> 1 + p(1 + (z - 2)) :|: z - 2 >= 0 tail(z) -{ 1 }-> xs :|: z = 1 + x + xs, xs >= 0, x >= 0 tail(z) -{ 1 }-> 1 :|: z = 1 tail(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {isEmpty}, {isZero}, {inc}, {tail}, {append}, {head}, {p}, {addLists,if}, {addList} Previous analysis results are: isEmpty: runtime: ?, size: O(1) [2] ---------------------------------------- (25) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: isEmpty after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 1 ---------------------------------------- (26) Obligation: Complexity RNTS consisting of the following rules: addList(z, z') -{ 1 }-> addLists(z, z', 1) :|: z >= 0, z' >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 addLists(z, z', z'') -{ 7 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 2 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 addLists(z, z', z'') -{ 7 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 addLists(z, z', z'') -{ 7 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(x2) + tail(z'), z'', append(z'', x3)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0, z' = 1 + x3 + xs4, xs4 >= 0, x3 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(x2) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 addLists(z, z', z'') -{ 6 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 1 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0 append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 append(z, z') -{ 1 }-> 1 + y + append(ys, z') :|: ys >= 0, y >= 0, z' >= 0, z = 1 + y + ys append(z, z') -{ 1 }-> 1 + z' + 1 :|: z = 1, z' >= 0 head(z) -{ 1 }-> x :|: z = 1 + x + xs, xs >= 0, x >= 0 head(z) -{ 0 }-> 0 :|: z >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> z5 :|: z1 >= 0, z' = 2, z5 >= 0, z6 >= 0, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z1, z2, z6) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 2, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z3, z4, z5) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 1, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z5 >= 0, z6 >= 0, z' = 1, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z' = 2, z = 1, z5 >= 0, z6 >= 0, z4 >= 0, z'' >= 0, z3 >= 0, z2 >= 0 inc(z) -{ 1 }-> 1 + inc(z - 1) :|: z - 1 >= 0 inc(z) -{ 1 }-> 1 + 0 :|: z = 0 isEmpty(z) -{ 1 }-> 2 :|: z = 1 isEmpty(z) -{ 1 }-> 1 :|: z = 1 + x + xs, xs >= 0, x >= 0 isEmpty(z) -{ 0 }-> 0 :|: z >= 0 isZero(z) -{ 1 }-> 2 :|: z = 0 isZero(z) -{ 1 }-> 1 :|: z - 1 >= 0 p(z) -{ 1 }-> 0 :|: z = 1 + 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 1 }-> 1 + p(1 + (z - 2)) :|: z - 2 >= 0 tail(z) -{ 1 }-> xs :|: z = 1 + x + xs, xs >= 0, x >= 0 tail(z) -{ 1 }-> 1 :|: z = 1 tail(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {isZero}, {inc}, {tail}, {append}, {head}, {p}, {addLists,if}, {addList} Previous analysis results are: isEmpty: runtime: O(1) [1], size: O(1) [2] ---------------------------------------- (27) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (28) Obligation: Complexity RNTS consisting of the following rules: addList(z, z') -{ 1 }-> addLists(z, z', 1) :|: z >= 0, z' >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 addLists(z, z', z'') -{ 7 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 2 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 addLists(z, z', z'') -{ 7 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 addLists(z, z', z'') -{ 7 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(x2) + tail(z'), z'', append(z'', x3)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0, z' = 1 + x3 + xs4, xs4 >= 0, x3 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(x2) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 addLists(z, z', z'') -{ 6 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 1 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0 append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 append(z, z') -{ 1 }-> 1 + y + append(ys, z') :|: ys >= 0, y >= 0, z' >= 0, z = 1 + y + ys append(z, z') -{ 1 }-> 1 + z' + 1 :|: z = 1, z' >= 0 head(z) -{ 1 }-> x :|: z = 1 + x + xs, xs >= 0, x >= 0 head(z) -{ 0 }-> 0 :|: z >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> z5 :|: z1 >= 0, z' = 2, z5 >= 0, z6 >= 0, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z1, z2, z6) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 2, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z3, z4, z5) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 1, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z5 >= 0, z6 >= 0, z' = 1, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z' = 2, z = 1, z5 >= 0, z6 >= 0, z4 >= 0, z'' >= 0, z3 >= 0, z2 >= 0 inc(z) -{ 1 }-> 1 + inc(z - 1) :|: z - 1 >= 0 inc(z) -{ 1 }-> 1 + 0 :|: z = 0 isEmpty(z) -{ 1 }-> 2 :|: z = 1 isEmpty(z) -{ 1 }-> 1 :|: z = 1 + x + xs, xs >= 0, x >= 0 isEmpty(z) -{ 0 }-> 0 :|: z >= 0 isZero(z) -{ 1 }-> 2 :|: z = 0 isZero(z) -{ 1 }-> 1 :|: z - 1 >= 0 p(z) -{ 1 }-> 0 :|: z = 1 + 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 1 }-> 1 + p(1 + (z - 2)) :|: z - 2 >= 0 tail(z) -{ 1 }-> xs :|: z = 1 + x + xs, xs >= 0, x >= 0 tail(z) -{ 1 }-> 1 :|: z = 1 tail(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {isZero}, {inc}, {tail}, {append}, {head}, {p}, {addLists,if}, {addList} Previous analysis results are: isEmpty: runtime: O(1) [1], size: O(1) [2] ---------------------------------------- (29) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: isZero after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 2 ---------------------------------------- (30) Obligation: Complexity RNTS consisting of the following rules: addList(z, z') -{ 1 }-> addLists(z, z', 1) :|: z >= 0, z' >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 addLists(z, z', z'') -{ 7 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 2 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 addLists(z, z', z'') -{ 7 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 addLists(z, z', z'') -{ 7 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(x2) + tail(z'), z'', append(z'', x3)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0, z' = 1 + x3 + xs4, xs4 >= 0, x3 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(x2) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 addLists(z, z', z'') -{ 6 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 1 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0 append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 append(z, z') -{ 1 }-> 1 + y + append(ys, z') :|: ys >= 0, y >= 0, z' >= 0, z = 1 + y + ys append(z, z') -{ 1 }-> 1 + z' + 1 :|: z = 1, z' >= 0 head(z) -{ 1 }-> x :|: z = 1 + x + xs, xs >= 0, x >= 0 head(z) -{ 0 }-> 0 :|: z >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> z5 :|: z1 >= 0, z' = 2, z5 >= 0, z6 >= 0, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z1, z2, z6) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 2, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z3, z4, z5) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 1, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z5 >= 0, z6 >= 0, z' = 1, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z' = 2, z = 1, z5 >= 0, z6 >= 0, z4 >= 0, z'' >= 0, z3 >= 0, z2 >= 0 inc(z) -{ 1 }-> 1 + inc(z - 1) :|: z - 1 >= 0 inc(z) -{ 1 }-> 1 + 0 :|: z = 0 isEmpty(z) -{ 1 }-> 2 :|: z = 1 isEmpty(z) -{ 1 }-> 1 :|: z = 1 + x + xs, xs >= 0, x >= 0 isEmpty(z) -{ 0 }-> 0 :|: z >= 0 isZero(z) -{ 1 }-> 2 :|: z = 0 isZero(z) -{ 1 }-> 1 :|: z - 1 >= 0 p(z) -{ 1 }-> 0 :|: z = 1 + 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 1 }-> 1 + p(1 + (z - 2)) :|: z - 2 >= 0 tail(z) -{ 1 }-> xs :|: z = 1 + x + xs, xs >= 0, x >= 0 tail(z) -{ 1 }-> 1 :|: z = 1 tail(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {isZero}, {inc}, {tail}, {append}, {head}, {p}, {addLists,if}, {addList} Previous analysis results are: isEmpty: runtime: O(1) [1], size: O(1) [2] isZero: runtime: ?, size: O(1) [2] ---------------------------------------- (31) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: isZero after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 1 ---------------------------------------- (32) Obligation: Complexity RNTS consisting of the following rules: addList(z, z') -{ 1 }-> addLists(z, z', 1) :|: z >= 0, z' >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 addLists(z, z', z'') -{ 7 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 2 }-> if(2, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 addLists(z, z', z'') -{ 7 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 addLists(z, z', z'') -{ 7 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(x2) + tail(z'), z'', append(z'', x3)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0, z' = 1 + x3 + xs4, xs4 >= 0, x3 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(x2) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, isZero(x''), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(1, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 2, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 addLists(z, z', z'') -{ 6 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, isZero(x'), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 1, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, isZero(x), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 1 }-> if(0, 0, isZero(0), tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: z >= 0, z' >= 0, z'' >= 0 append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 append(z, z') -{ 1 }-> 1 + y + append(ys, z') :|: ys >= 0, y >= 0, z' >= 0, z = 1 + y + ys append(z, z') -{ 1 }-> 1 + z' + 1 :|: z = 1, z' >= 0 head(z) -{ 1 }-> x :|: z = 1 + x + xs, xs >= 0, x >= 0 head(z) -{ 0 }-> 0 :|: z >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> z5 :|: z1 >= 0, z' = 2, z5 >= 0, z6 >= 0, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z1, z2, z6) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 2, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z3, z4, z5) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 1, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z5 >= 0, z6 >= 0, z' = 1, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z' = 2, z = 1, z5 >= 0, z6 >= 0, z4 >= 0, z'' >= 0, z3 >= 0, z2 >= 0 inc(z) -{ 1 }-> 1 + inc(z - 1) :|: z - 1 >= 0 inc(z) -{ 1 }-> 1 + 0 :|: z = 0 isEmpty(z) -{ 1 }-> 2 :|: z = 1 isEmpty(z) -{ 1 }-> 1 :|: z = 1 + x + xs, xs >= 0, x >= 0 isEmpty(z) -{ 0 }-> 0 :|: z >= 0 isZero(z) -{ 1 }-> 2 :|: z = 0 isZero(z) -{ 1 }-> 1 :|: z - 1 >= 0 p(z) -{ 1 }-> 0 :|: z = 1 + 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 1 }-> 1 + p(1 + (z - 2)) :|: z - 2 >= 0 tail(z) -{ 1 }-> xs :|: z = 1 + x + xs, xs >= 0, x >= 0 tail(z) -{ 1 }-> 1 :|: z = 1 tail(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {inc}, {tail}, {append}, {head}, {p}, {addLists,if}, {addList} Previous analysis results are: isEmpty: runtime: O(1) [1], size: O(1) [2] isZero: runtime: O(1) [1], size: O(1) [2] ---------------------------------------- (33) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (34) Obligation: Complexity RNTS consisting of the following rules: addList(z, z') -{ 1 }-> addLists(z, z', 1) :|: z >= 0, z' >= 0 addLists(z, z', z'') -{ 8 }-> if(2, 2, s, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s >= 0, s <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 2, s', tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s' >= 0, s' <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 2, s'', tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s'' >= 0, s'' <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, s1, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s1 >= 0, s1 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, s10, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: s10 >= 0, s10 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, s11, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: s11 >= 0, s11 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, s12, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: s12 >= 0, s12 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, s13, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s13 >= 0, s13 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 addLists(z, z', z'') -{ 7 }-> if(2, 2, s2, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: s2 >= 0, s2 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, s3, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: s3 >= 0, s3 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, s4, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: s4 >= 0, s4 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, s5, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s5 >= 0, s5 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 2, s6, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: s6 >= 0, s6 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, s7, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: s7 >= 0, s7 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, s8, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: s8 >= 0, s8 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, s9, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s9 >= 0, s9 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 8 }-> if(2, 1, s30, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: s30 >= 0, s30 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 1, s31, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: s31 >= 0, s31 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 1, s32, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: s32 >= 0, s32 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, s33, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s33 >= 0, s33 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 1, s34, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s34 >= 0, s34 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, s35, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s35 >= 0, s35 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, s36, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s36 >= 0, s36 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, s37, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s37 >= 0, s37 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 1, s38, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s38 >= 0, s38 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, s39, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s39 >= 0, s39 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, s40, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s40 >= 0, s40 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, s41, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s41 >= 0, s41 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, s42, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: s42 >= 0, s42 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, s43, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: s43 >= 0, s43 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, s44, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: s44 >= 0, s44 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, s45, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s45 >= 0, s45 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 0, s14, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s14 >= 0, s14 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 0, s15, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s15 >= 0, s15 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 0, s16, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s16 >= 0, s16 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, s17, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s17 >= 0, s17 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 0, s18, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: s18 >= 0, s18 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, s19, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: s19 >= 0, s19 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, s20, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: s20 >= 0, s20 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, s21, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s21 >= 0, s21 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 0, s22, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: s22 >= 0, s22 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, s23, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: s23 >= 0, s23 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, s24, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: s24 >= 0, s24 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, s25, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s25 >= 0, s25 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, s26, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: s26 >= 0, s26 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, s27, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: s27 >= 0, s27 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, s28, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: s28 >= 0, s28 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, s29, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s29 >= 0, s29 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 addLists(z, z', z'') -{ 6 }-> if(1, 2, s100, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s100 >= 0, s100 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, s101, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s101 >= 0, s101 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 2, s102, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s102 >= 0, s102 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, s103, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s103 >= 0, s103 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, s104, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s104 >= 0, s104 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, s105, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s105 >= 0, s105 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, s106, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: s106 >= 0, s106 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, s107, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: s107 >= 0, s107 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, s108, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: s108 >= 0, s108 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, s109, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s109 >= 0, s109 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 addLists(z, z', z'') -{ 8 }-> if(1, 2, s94, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: s94 >= 0, s94 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 2, s95, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: s95 >= 0, s95 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 2, s96, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: s96 >= 0, s96 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, s97, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s97 >= 0, s97 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 2, s98, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s98 >= 0, s98 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, s99, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s99 >= 0, s99 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 8 }-> if(1, 1, s126, tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(x2) + tail(z'), z'', append(z'', x3)) :|: s126 >= 0, s126 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0, z' = 1 + x3 + xs4, xs4 >= 0, x3 >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 1, s127, tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(x2) + tail(z'), z'', append(z'', 0)) :|: s127 >= 0, s127 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 1, s128, tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x2)) :|: s128 >= 0, s128 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, s129, tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s129 >= 0, s129 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 1, s130, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: s130 >= 0, s130 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, s131, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: s131 >= 0, s131 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, s132, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: s132 >= 0, s132 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, s133, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s133 >= 0, s133 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 1, s134, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: s134 >= 0, s134 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, s135, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: s135 >= 0, s135 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, s136, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: s136 >= 0, s136 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, s137, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s137 >= 0, s137 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, s138, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s138 >= 0, s138 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, s139, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s139 >= 0, s139 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, s140, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s140 >= 0, s140 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, s141, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s141 >= 0, s141 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 0, s110, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: s110 >= 0, s110 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 0, s111, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: s111 >= 0, s111 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 0, s112, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: s112 >= 0, s112 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, s113, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s113 >= 0, s113 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 0, s114, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s114 >= 0, s114 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, s115, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s115 >= 0, s115 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, s116, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s116 >= 0, s116 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, s117, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s117 >= 0, s117 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 0, s118, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s118 >= 0, s118 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, s119, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s119 >= 0, s119 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, s120, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s120 >= 0, s120 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, s121, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s121 >= 0, s121 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, s122, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: s122 >= 0, s122 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, s123, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: s123 >= 0, s123 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, s124, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: s124 >= 0, s124 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, s125, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s125 >= 0, s125 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 7 }-> if(0, 2, s46, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s46 >= 0, s46 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 2, s47, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s47 >= 0, s47 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 2, s48, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s48 >= 0, s48 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, s49, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s49 >= 0, s49 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 2, s50, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: s50 >= 0, s50 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, s51, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: s51 >= 0, s51 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, s52, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: s52 >= 0, s52 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, s53, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s53 >= 0, s53 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 2, s54, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: s54 >= 0, s54 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, s55, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: s55 >= 0, s55 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, s56, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: s56 >= 0, s56 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, s57, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s57 >= 0, s57 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, s58, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: s58 >= 0, s58 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, s59, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: s59 >= 0, s59 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, s60, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: s60 >= 0, s60 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, s61, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s61 >= 0, s61 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 addLists(z, z', z'') -{ 7 }-> if(0, 1, s78, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: s78 >= 0, s78 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 1, s79, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: s79 >= 0, s79 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 1, s80, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: s80 >= 0, s80 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, s81, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s81 >= 0, s81 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 1, s82, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s82 >= 0, s82 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, s83, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s83 >= 0, s83 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, s84, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s84 >= 0, s84 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, s85, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s85 >= 0, s85 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 1, s86, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s86 >= 0, s86 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, s87, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s87 >= 0, s87 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, s88, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s88 >= 0, s88 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, s89, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s89 >= 0, s89 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, s90, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: s90 >= 0, s90 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, s91, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: s91 >= 0, s91 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, s92, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: s92 >= 0, s92 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, s93, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s93 >= 0, s93 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 0, s62, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s62 >= 0, s62 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 0, s63, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s63 >= 0, s63 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 0, s64, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s64 >= 0, s64 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, s65, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s65 >= 0, s65 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 0, s66, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: s66 >= 0, s66 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, s67, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: s67 >= 0, s67 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, s68, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: s68 >= 0, s68 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, s69, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s69 >= 0, s69 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 0, s70, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: s70 >= 0, s70 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, s71, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: s71 >= 0, s71 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, s72, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: s72 >= 0, s72 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, s73, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s73 >= 0, s73 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, s74, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: s74 >= 0, s74 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, s75, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: s75 >= 0, s75 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, s76, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: s76 >= 0, s76 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, s77, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s77 >= 0, s77 <= 2, z >= 0, z' >= 0, z'' >= 0 append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 append(z, z') -{ 1 }-> 1 + y + append(ys, z') :|: ys >= 0, y >= 0, z' >= 0, z = 1 + y + ys append(z, z') -{ 1 }-> 1 + z' + 1 :|: z = 1, z' >= 0 head(z) -{ 1 }-> x :|: z = 1 + x + xs, xs >= 0, x >= 0 head(z) -{ 0 }-> 0 :|: z >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> z5 :|: z1 >= 0, z' = 2, z5 >= 0, z6 >= 0, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z1, z2, z6) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 2, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z3, z4, z5) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 1, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z5 >= 0, z6 >= 0, z' = 1, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z' = 2, z = 1, z5 >= 0, z6 >= 0, z4 >= 0, z'' >= 0, z3 >= 0, z2 >= 0 inc(z) -{ 1 }-> 1 + inc(z - 1) :|: z - 1 >= 0 inc(z) -{ 1 }-> 1 + 0 :|: z = 0 isEmpty(z) -{ 1 }-> 2 :|: z = 1 isEmpty(z) -{ 1 }-> 1 :|: z = 1 + x + xs, xs >= 0, x >= 0 isEmpty(z) -{ 0 }-> 0 :|: z >= 0 isZero(z) -{ 1 }-> 2 :|: z = 0 isZero(z) -{ 1 }-> 1 :|: z - 1 >= 0 p(z) -{ 1 }-> 0 :|: z = 1 + 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 1 }-> 1 + p(1 + (z - 2)) :|: z - 2 >= 0 tail(z) -{ 1 }-> xs :|: z = 1 + x + xs, xs >= 0, x >= 0 tail(z) -{ 1 }-> 1 :|: z = 1 tail(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {inc}, {tail}, {append}, {head}, {p}, {addLists,if}, {addList} Previous analysis results are: isEmpty: runtime: O(1) [1], size: O(1) [2] isZero: runtime: O(1) [1], size: O(1) [2] ---------------------------------------- (35) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: inc after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 1 + z ---------------------------------------- (36) Obligation: Complexity RNTS consisting of the following rules: addList(z, z') -{ 1 }-> addLists(z, z', 1) :|: z >= 0, z' >= 0 addLists(z, z', z'') -{ 8 }-> if(2, 2, s, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s >= 0, s <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 2, s', tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s' >= 0, s' <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 2, s'', tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s'' >= 0, s'' <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, s1, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s1 >= 0, s1 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, s10, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: s10 >= 0, s10 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, s11, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: s11 >= 0, s11 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, s12, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: s12 >= 0, s12 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, s13, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s13 >= 0, s13 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 addLists(z, z', z'') -{ 7 }-> if(2, 2, s2, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: s2 >= 0, s2 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, s3, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: s3 >= 0, s3 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, s4, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: s4 >= 0, s4 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, s5, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s5 >= 0, s5 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 2, s6, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: s6 >= 0, s6 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, s7, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: s7 >= 0, s7 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, s8, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: s8 >= 0, s8 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, s9, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s9 >= 0, s9 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 8 }-> if(2, 1, s30, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: s30 >= 0, s30 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 1, s31, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: s31 >= 0, s31 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 1, s32, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: s32 >= 0, s32 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, s33, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s33 >= 0, s33 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 1, s34, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s34 >= 0, s34 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, s35, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s35 >= 0, s35 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, s36, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s36 >= 0, s36 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, s37, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s37 >= 0, s37 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 1, s38, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s38 >= 0, s38 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, s39, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s39 >= 0, s39 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, s40, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s40 >= 0, s40 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, s41, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s41 >= 0, s41 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, s42, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: s42 >= 0, s42 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, s43, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: s43 >= 0, s43 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, s44, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: s44 >= 0, s44 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, s45, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s45 >= 0, s45 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 0, s14, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s14 >= 0, s14 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 0, s15, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s15 >= 0, s15 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 0, s16, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s16 >= 0, s16 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, s17, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s17 >= 0, s17 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 0, s18, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: s18 >= 0, s18 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, s19, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: s19 >= 0, s19 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, s20, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: s20 >= 0, s20 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, s21, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s21 >= 0, s21 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 0, s22, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: s22 >= 0, s22 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, s23, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: s23 >= 0, s23 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, s24, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: s24 >= 0, s24 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, s25, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s25 >= 0, s25 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, s26, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: s26 >= 0, s26 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, s27, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: s27 >= 0, s27 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, s28, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: s28 >= 0, s28 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, s29, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s29 >= 0, s29 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 addLists(z, z', z'') -{ 6 }-> if(1, 2, s100, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s100 >= 0, s100 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, s101, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s101 >= 0, s101 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 2, s102, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s102 >= 0, s102 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, s103, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s103 >= 0, s103 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, s104, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s104 >= 0, s104 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, s105, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s105 >= 0, s105 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, s106, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: s106 >= 0, s106 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, s107, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: s107 >= 0, s107 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, s108, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: s108 >= 0, s108 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, s109, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s109 >= 0, s109 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 addLists(z, z', z'') -{ 8 }-> if(1, 2, s94, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: s94 >= 0, s94 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 2, s95, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: s95 >= 0, s95 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 2, s96, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: s96 >= 0, s96 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, s97, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s97 >= 0, s97 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 2, s98, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s98 >= 0, s98 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, s99, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s99 >= 0, s99 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 8 }-> if(1, 1, s126, tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(x2) + tail(z'), z'', append(z'', x3)) :|: s126 >= 0, s126 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0, z' = 1 + x3 + xs4, xs4 >= 0, x3 >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 1, s127, tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(x2) + tail(z'), z'', append(z'', 0)) :|: s127 >= 0, s127 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 1, s128, tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x2)) :|: s128 >= 0, s128 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, s129, tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s129 >= 0, s129 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 1, s130, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: s130 >= 0, s130 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, s131, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: s131 >= 0, s131 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, s132, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: s132 >= 0, s132 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, s133, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s133 >= 0, s133 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 1, s134, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: s134 >= 0, s134 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, s135, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: s135 >= 0, s135 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, s136, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: s136 >= 0, s136 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, s137, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s137 >= 0, s137 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, s138, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s138 >= 0, s138 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, s139, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s139 >= 0, s139 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, s140, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s140 >= 0, s140 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, s141, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s141 >= 0, s141 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 0, s110, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: s110 >= 0, s110 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 0, s111, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: s111 >= 0, s111 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 0, s112, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: s112 >= 0, s112 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, s113, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s113 >= 0, s113 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 0, s114, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s114 >= 0, s114 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, s115, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s115 >= 0, s115 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, s116, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s116 >= 0, s116 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, s117, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s117 >= 0, s117 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 0, s118, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s118 >= 0, s118 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, s119, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s119 >= 0, s119 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, s120, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s120 >= 0, s120 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, s121, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s121 >= 0, s121 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, s122, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: s122 >= 0, s122 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, s123, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: s123 >= 0, s123 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, s124, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: s124 >= 0, s124 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, s125, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s125 >= 0, s125 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 7 }-> if(0, 2, s46, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s46 >= 0, s46 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 2, s47, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s47 >= 0, s47 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 2, s48, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s48 >= 0, s48 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, s49, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s49 >= 0, s49 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 2, s50, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: s50 >= 0, s50 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, s51, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: s51 >= 0, s51 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, s52, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: s52 >= 0, s52 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, s53, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s53 >= 0, s53 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 2, s54, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: s54 >= 0, s54 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, s55, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: s55 >= 0, s55 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, s56, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: s56 >= 0, s56 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, s57, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s57 >= 0, s57 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, s58, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: s58 >= 0, s58 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, s59, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: s59 >= 0, s59 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, s60, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: s60 >= 0, s60 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, s61, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s61 >= 0, s61 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 addLists(z, z', z'') -{ 7 }-> if(0, 1, s78, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: s78 >= 0, s78 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 1, s79, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: s79 >= 0, s79 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 1, s80, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: s80 >= 0, s80 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, s81, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s81 >= 0, s81 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 1, s82, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s82 >= 0, s82 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, s83, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s83 >= 0, s83 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, s84, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s84 >= 0, s84 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, s85, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s85 >= 0, s85 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 1, s86, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s86 >= 0, s86 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, s87, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s87 >= 0, s87 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, s88, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s88 >= 0, s88 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, s89, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s89 >= 0, s89 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, s90, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: s90 >= 0, s90 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, s91, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: s91 >= 0, s91 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, s92, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: s92 >= 0, s92 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, s93, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s93 >= 0, s93 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 0, s62, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s62 >= 0, s62 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 0, s63, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s63 >= 0, s63 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 0, s64, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s64 >= 0, s64 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, s65, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s65 >= 0, s65 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 0, s66, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: s66 >= 0, s66 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, s67, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: s67 >= 0, s67 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, s68, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: s68 >= 0, s68 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, s69, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s69 >= 0, s69 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 0, s70, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: s70 >= 0, s70 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, s71, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: s71 >= 0, s71 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, s72, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: s72 >= 0, s72 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, s73, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s73 >= 0, s73 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, s74, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: s74 >= 0, s74 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, s75, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: s75 >= 0, s75 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, s76, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: s76 >= 0, s76 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, s77, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s77 >= 0, s77 <= 2, z >= 0, z' >= 0, z'' >= 0 append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 append(z, z') -{ 1 }-> 1 + y + append(ys, z') :|: ys >= 0, y >= 0, z' >= 0, z = 1 + y + ys append(z, z') -{ 1 }-> 1 + z' + 1 :|: z = 1, z' >= 0 head(z) -{ 1 }-> x :|: z = 1 + x + xs, xs >= 0, x >= 0 head(z) -{ 0 }-> 0 :|: z >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> z5 :|: z1 >= 0, z' = 2, z5 >= 0, z6 >= 0, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z1, z2, z6) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 2, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z3, z4, z5) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 1, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z5 >= 0, z6 >= 0, z' = 1, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z' = 2, z = 1, z5 >= 0, z6 >= 0, z4 >= 0, z'' >= 0, z3 >= 0, z2 >= 0 inc(z) -{ 1 }-> 1 + inc(z - 1) :|: z - 1 >= 0 inc(z) -{ 1 }-> 1 + 0 :|: z = 0 isEmpty(z) -{ 1 }-> 2 :|: z = 1 isEmpty(z) -{ 1 }-> 1 :|: z = 1 + x + xs, xs >= 0, x >= 0 isEmpty(z) -{ 0 }-> 0 :|: z >= 0 isZero(z) -{ 1 }-> 2 :|: z = 0 isZero(z) -{ 1 }-> 1 :|: z - 1 >= 0 p(z) -{ 1 }-> 0 :|: z = 1 + 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 1 }-> 1 + p(1 + (z - 2)) :|: z - 2 >= 0 tail(z) -{ 1 }-> xs :|: z = 1 + x + xs, xs >= 0, x >= 0 tail(z) -{ 1 }-> 1 :|: z = 1 tail(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {inc}, {tail}, {append}, {head}, {p}, {addLists,if}, {addList} Previous analysis results are: isEmpty: runtime: O(1) [1], size: O(1) [2] isZero: runtime: O(1) [1], size: O(1) [2] inc: runtime: ?, size: O(n^1) [1 + z] ---------------------------------------- (37) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: inc after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 1 + z ---------------------------------------- (38) Obligation: Complexity RNTS consisting of the following rules: addList(z, z') -{ 1 }-> addLists(z, z', 1) :|: z >= 0, z' >= 0 addLists(z, z', z'') -{ 8 }-> if(2, 2, s, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s >= 0, s <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 2, s', tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s' >= 0, s' <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 2, s'', tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s'' >= 0, s'' <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, s1, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s1 >= 0, s1 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, s10, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: s10 >= 0, s10 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, s11, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: s11 >= 0, s11 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, s12, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: s12 >= 0, s12 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 2, s13, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s13 >= 0, s13 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 addLists(z, z', z'') -{ 7 }-> if(2, 2, s2, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: s2 >= 0, s2 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, s3, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: s3 >= 0, s3 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, s4, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: s4 >= 0, s4 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, s5, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s5 >= 0, s5 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 2, s6, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: s6 >= 0, s6 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, s7, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: s7 >= 0, s7 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, s8, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: s8 >= 0, s8 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, s9, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s9 >= 0, s9 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 8 }-> if(2, 1, s30, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: s30 >= 0, s30 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 1, s31, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: s31 >= 0, s31 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 1, s32, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: s32 >= 0, s32 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, s33, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s33 >= 0, s33 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 1, s34, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s34 >= 0, s34 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, s35, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s35 >= 0, s35 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, s36, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s36 >= 0, s36 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, s37, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s37 >= 0, s37 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 1, s38, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s38 >= 0, s38 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, s39, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s39 >= 0, s39 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, s40, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s40 >= 0, s40 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, s41, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s41 >= 0, s41 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, s42, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: s42 >= 0, s42 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, s43, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: s43 >= 0, s43 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, s44, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: s44 >= 0, s44 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 1, s45, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s45 >= 0, s45 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 0, s14, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s14 >= 0, s14 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 0, s15, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s15 >= 0, s15 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 0, s16, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s16 >= 0, s16 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, s17, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s17 >= 0, s17 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 0, s18, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: s18 >= 0, s18 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, s19, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: s19 >= 0, s19 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, s20, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: s20 >= 0, s20 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, s21, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s21 >= 0, s21 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 0, s22, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: s22 >= 0, s22 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, s23, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: s23 >= 0, s23 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, s24, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: s24 >= 0, s24 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, s25, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s25 >= 0, s25 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, s26, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: s26 >= 0, s26 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, s27, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: s27 >= 0, s27 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, s28, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: s28 >= 0, s28 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(2, 0, s29, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s29 >= 0, s29 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 addLists(z, z', z'') -{ 6 }-> if(1, 2, s100, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s100 >= 0, s100 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, s101, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s101 >= 0, s101 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 2, s102, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s102 >= 0, s102 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, s103, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s103 >= 0, s103 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, s104, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s104 >= 0, s104 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, s105, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s105 >= 0, s105 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, s106, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: s106 >= 0, s106 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, s107, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: s107 >= 0, s107 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, s108, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: s108 >= 0, s108 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 2, s109, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s109 >= 0, s109 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 addLists(z, z', z'') -{ 8 }-> if(1, 2, s94, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: s94 >= 0, s94 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 2, s95, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: s95 >= 0, s95 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 2, s96, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: s96 >= 0, s96 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, s97, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s97 >= 0, s97 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 2, s98, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s98 >= 0, s98 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, s99, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s99 >= 0, s99 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 8 }-> if(1, 1, s126, tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(x2) + tail(z'), z'', append(z'', x3)) :|: s126 >= 0, s126 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0, z' = 1 + x3 + xs4, xs4 >= 0, x3 >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 1, s127, tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(x2) + tail(z'), z'', append(z'', 0)) :|: s127 >= 0, s127 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 1, s128, tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x2)) :|: s128 >= 0, s128 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, s129, tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s129 >= 0, s129 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 1, s130, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: s130 >= 0, s130 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, s131, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: s131 >= 0, s131 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, s132, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: s132 >= 0, s132 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, s133, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s133 >= 0, s133 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 1, s134, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: s134 >= 0, s134 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, s135, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: s135 >= 0, s135 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, s136, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: s136 >= 0, s136 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, s137, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s137 >= 0, s137 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, s138, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s138 >= 0, s138 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, s139, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s139 >= 0, s139 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, s140, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s140 >= 0, s140 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 1, s141, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s141 >= 0, s141 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 0, s110, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: s110 >= 0, s110 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 0, s111, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: s111 >= 0, s111 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 0, s112, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: s112 >= 0, s112 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, s113, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s113 >= 0, s113 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 0, s114, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s114 >= 0, s114 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, s115, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s115 >= 0, s115 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, s116, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s116 >= 0, s116 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, s117, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s117 >= 0, s117 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 0, s118, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s118 >= 0, s118 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, s119, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s119 >= 0, s119 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, s120, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s120 >= 0, s120 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, s121, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s121 >= 0, s121 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, s122, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: s122 >= 0, s122 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, s123, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: s123 >= 0, s123 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, s124, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: s124 >= 0, s124 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(1, 0, s125, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s125 >= 0, s125 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 7 }-> if(0, 2, s46, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s46 >= 0, s46 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 2, s47, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s47 >= 0, s47 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 2, s48, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s48 >= 0, s48 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, s49, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s49 >= 0, s49 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 2, s50, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: s50 >= 0, s50 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, s51, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: s51 >= 0, s51 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, s52, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: s52 >= 0, s52 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, s53, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s53 >= 0, s53 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 2, s54, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: s54 >= 0, s54 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, s55, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: s55 >= 0, s55 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, s56, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: s56 >= 0, s56 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, s57, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s57 >= 0, s57 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, s58, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: s58 >= 0, s58 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, s59, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: s59 >= 0, s59 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, s60, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: s60 >= 0, s60 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 2, s61, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s61 >= 0, s61 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 addLists(z, z', z'') -{ 7 }-> if(0, 1, s78, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', x2)) :|: s78 >= 0, s78 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 1, s79, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(x1) + tail(z'), z'', append(z'', 0)) :|: s79 >= 0, s79 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 1, s80, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x1)) :|: s80 >= 0, s80 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, s81, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s81 >= 0, s81 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 1, s82, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s82 >= 0, s82 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, s83, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s83 >= 0, s83 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, s84, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s84 >= 0, s84 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, s85, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s85 >= 0, s85 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 1, s86, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s86 >= 0, s86 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, s87, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s87 >= 0, s87 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, s88, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s88 >= 0, s88 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, s89, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s89 >= 0, s89 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, s90, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: s90 >= 0, s90 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, s91, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: s91 >= 0, s91 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, s92, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: s92 >= 0, s92 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 1, s93, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s93 >= 0, s93 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 0, s62, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', x1)) :|: s62 >= 0, s62 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 0, s63, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(x'') + tail(z'), z'', append(z'', 0)) :|: s63 >= 0, s63 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 0, s64, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x'')) :|: s64 >= 0, s64 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, s65, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s65 >= 0, s65 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 0, s66, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: s66 >= 0, s66 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, s67, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: s67 >= 0, s67 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, s68, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: s68 >= 0, s68 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, s69, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s69 >= 0, s69 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 0, s70, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', x'')) :|: s70 >= 0, s70 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, s71, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(x') + tail(z'), z'', append(z'', 0)) :|: s71 >= 0, s71 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, s72, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x')) :|: s72 >= 0, s72 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, s73, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s73 >= 0, s73 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, s74, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', x')) :|: s74 >= 0, s74 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, s75, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(x) + tail(z'), z'', append(z'', 0)) :|: s75 >= 0, s75 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, s76, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', x)) :|: s76 >= 0, s76 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 2 }-> if(0, 0, s77, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + inc(0) + tail(z'), z'', append(z'', 0)) :|: s77 >= 0, s77 <= 2, z >= 0, z' >= 0, z'' >= 0 append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 append(z, z') -{ 1 }-> 1 + y + append(ys, z') :|: ys >= 0, y >= 0, z' >= 0, z = 1 + y + ys append(z, z') -{ 1 }-> 1 + z' + 1 :|: z = 1, z' >= 0 head(z) -{ 1 }-> x :|: z = 1 + x + xs, xs >= 0, x >= 0 head(z) -{ 0 }-> 0 :|: z >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> z5 :|: z1 >= 0, z' = 2, z5 >= 0, z6 >= 0, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z1, z2, z6) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 2, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z3, z4, z5) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 1, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z5 >= 0, z6 >= 0, z' = 1, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z' = 2, z = 1, z5 >= 0, z6 >= 0, z4 >= 0, z'' >= 0, z3 >= 0, z2 >= 0 inc(z) -{ 1 }-> 1 + inc(z - 1) :|: z - 1 >= 0 inc(z) -{ 1 }-> 1 + 0 :|: z = 0 isEmpty(z) -{ 1 }-> 2 :|: z = 1 isEmpty(z) -{ 1 }-> 1 :|: z = 1 + x + xs, xs >= 0, x >= 0 isEmpty(z) -{ 0 }-> 0 :|: z >= 0 isZero(z) -{ 1 }-> 2 :|: z = 0 isZero(z) -{ 1 }-> 1 :|: z - 1 >= 0 p(z) -{ 1 }-> 0 :|: z = 1 + 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 1 }-> 1 + p(1 + (z - 2)) :|: z - 2 >= 0 tail(z) -{ 1 }-> xs :|: z = 1 + x + xs, xs >= 0, x >= 0 tail(z) -{ 1 }-> 1 :|: z = 1 tail(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {tail}, {append}, {head}, {p}, {addLists,if}, {addList} Previous analysis results are: isEmpty: runtime: O(1) [1], size: O(1) [2] isZero: runtime: O(1) [1], size: O(1) [2] inc: runtime: O(n^1) [1 + z], size: O(n^1) [1 + z] ---------------------------------------- (39) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (40) Obligation: Complexity RNTS consisting of the following rules: addList(z, z') -{ 1 }-> addLists(z, z', 1) :|: z >= 0, z' >= 0 addLists(z, z', z'') -{ 9 + x'' }-> if(2, 2, s, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s143 + tail(z'), z'', append(z'', x1)) :|: s143 >= 0, s143 <= x'' + 1, s >= 0, s <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 8 + x'' }-> if(2, 2, s', tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s144 + tail(z'), z'', append(z'', 0)) :|: s144 >= 0, s144 <= x'' + 1, s' >= 0, s' <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 8 }-> if(2, 2, s'', tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s145 + tail(z'), z'', append(z'', x'')) :|: s145 >= 0, s145 <= 0 + 1, s'' >= 0, s'' <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 2, s1, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s146 + tail(z'), z'', append(z'', 0)) :|: s146 >= 0, s146 <= 0 + 1, s1 >= 0, s1 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 7 + x }-> if(2, 2, s10, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s155 + tail(z'), z'', append(z'', x')) :|: s155 >= 0, s155 <= x + 1, s10 >= 0, s10 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 + x }-> if(2, 2, s11, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s156 + tail(z'), z'', append(z'', 0)) :|: s156 >= 0, s156 <= x + 1, s11 >= 0, s11 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, s12, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s157 + tail(z'), z'', append(z'', x)) :|: s157 >= 0, s157 <= 0 + 1, s12 >= 0, s12 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, s13, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s158 + tail(z'), z'', append(z'', 0)) :|: s158 >= 0, s158 <= 0 + 1, s13 >= 0, s13 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 addLists(z, z', z'') -{ 8 + x' }-> if(2, 2, s2, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s147 + tail(z'), z'', append(z'', x'')) :|: s147 >= 0, s147 <= x' + 1, s2 >= 0, s2 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 + x' }-> if(2, 2, s3, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s148 + tail(z'), z'', append(z'', 0)) :|: s148 >= 0, s148 <= x' + 1, s3 >= 0, s3 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 2, s4, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s149 + tail(z'), z'', append(z'', x')) :|: s149 >= 0, s149 <= 0 + 1, s4 >= 0, s4 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, s5, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s150 + tail(z'), z'', append(z'', 0)) :|: s150 >= 0, s150 <= 0 + 1, s5 >= 0, s5 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 8 + x' }-> if(2, 2, s6, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s151 + tail(z'), z'', append(z'', x'')) :|: s151 >= 0, s151 <= x' + 1, s6 >= 0, s6 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 + x' }-> if(2, 2, s7, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s152 + tail(z'), z'', append(z'', 0)) :|: s152 >= 0, s152 <= x' + 1, s7 >= 0, s7 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 2, s8, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s153 + tail(z'), z'', append(z'', x')) :|: s153 >= 0, s153 <= 0 + 1, s8 >= 0, s8 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, s9, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s154 + tail(z'), z'', append(z'', 0)) :|: s154 >= 0, s154 <= 0 + 1, s9 >= 0, s9 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 9 + x1 }-> if(2, 1, s30, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s175 + tail(z'), z'', append(z'', x2)) :|: s175 >= 0, s175 <= x1 + 1, s30 >= 0, s30 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 8 + x1 }-> if(2, 1, s31, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s176 + tail(z'), z'', append(z'', 0)) :|: s176 >= 0, s176 <= x1 + 1, s31 >= 0, s31 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 8 }-> if(2, 1, s32, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s177 + tail(z'), z'', append(z'', x1)) :|: s177 >= 0, s177 <= 0 + 1, s32 >= 0, s32 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 1, s33, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s178 + tail(z'), z'', append(z'', 0)) :|: s178 >= 0, s178 <= 0 + 1, s33 >= 0, s33 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 8 + x'' }-> if(2, 1, s34, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s179 + tail(z'), z'', append(z'', x1)) :|: s179 >= 0, s179 <= x'' + 1, s34 >= 0, s34 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 + x'' }-> if(2, 1, s35, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s180 + tail(z'), z'', append(z'', 0)) :|: s180 >= 0, s180 <= x'' + 1, s35 >= 0, s35 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 1, s36, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s181 + tail(z'), z'', append(z'', x'')) :|: s181 >= 0, s181 <= 0 + 1, s36 >= 0, s36 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, s37, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s182 + tail(z'), z'', append(z'', 0)) :|: s182 >= 0, s182 <= 0 + 1, s37 >= 0, s37 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 8 + x'' }-> if(2, 1, s38, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s183 + tail(z'), z'', append(z'', x1)) :|: s183 >= 0, s183 <= x'' + 1, s38 >= 0, s38 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 + x'' }-> if(2, 1, s39, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s184 + tail(z'), z'', append(z'', 0)) :|: s184 >= 0, s184 <= x'' + 1, s39 >= 0, s39 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 1, s40, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s185 + tail(z'), z'', append(z'', x'')) :|: s185 >= 0, s185 <= 0 + 1, s40 >= 0, s40 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, s41, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s186 + tail(z'), z'', append(z'', 0)) :|: s186 >= 0, s186 <= 0 + 1, s41 >= 0, s41 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 7 + x' }-> if(2, 1, s42, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s187 + tail(z'), z'', append(z'', x'')) :|: s187 >= 0, s187 <= x' + 1, s42 >= 0, s42 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 + x' }-> if(2, 1, s43, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s188 + tail(z'), z'', append(z'', 0)) :|: s188 >= 0, s188 <= x' + 1, s43 >= 0, s43 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, s44, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s189 + tail(z'), z'', append(z'', x')) :|: s189 >= 0, s189 <= 0 + 1, s44 >= 0, s44 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, s45, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s190 + tail(z'), z'', append(z'', 0)) :|: s190 >= 0, s190 <= 0 + 1, s45 >= 0, s45 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 8 + x'' }-> if(2, 0, s14, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s159 + tail(z'), z'', append(z'', x1)) :|: s159 >= 0, s159 <= x'' + 1, s14 >= 0, s14 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 + x'' }-> if(2, 0, s15, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s160 + tail(z'), z'', append(z'', 0)) :|: s160 >= 0, s160 <= x'' + 1, s15 >= 0, s15 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 0, s16, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s161 + tail(z'), z'', append(z'', x'')) :|: s161 >= 0, s161 <= 0 + 1, s16 >= 0, s16 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 0, s17, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s162 + tail(z'), z'', append(z'', 0)) :|: s162 >= 0, s162 <= 0 + 1, s17 >= 0, s17 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 7 + x' }-> if(2, 0, s18, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s163 + tail(z'), z'', append(z'', x'')) :|: s163 >= 0, s163 <= x' + 1, s18 >= 0, s18 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 + x' }-> if(2, 0, s19, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s164 + tail(z'), z'', append(z'', 0)) :|: s164 >= 0, s164 <= x' + 1, s19 >= 0, s19 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 0, s20, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s165 + tail(z'), z'', append(z'', x')) :|: s165 >= 0, s165 <= 0 + 1, s20 >= 0, s20 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, s21, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s166 + tail(z'), z'', append(z'', 0)) :|: s166 >= 0, s166 <= 0 + 1, s21 >= 0, s21 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 7 + x' }-> if(2, 0, s22, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s167 + tail(z'), z'', append(z'', x'')) :|: s167 >= 0, s167 <= x' + 1, s22 >= 0, s22 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 + x' }-> if(2, 0, s23, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s168 + tail(z'), z'', append(z'', 0)) :|: s168 >= 0, s168 <= x' + 1, s23 >= 0, s23 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 0, s24, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s169 + tail(z'), z'', append(z'', x')) :|: s169 >= 0, s169 <= 0 + 1, s24 >= 0, s24 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, s25, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s170 + tail(z'), z'', append(z'', 0)) :|: s170 >= 0, s170 <= 0 + 1, s25 >= 0, s25 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 + x }-> if(2, 0, s26, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s171 + tail(z'), z'', append(z'', x')) :|: s171 >= 0, s171 <= x + 1, s26 >= 0, s26 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 + x }-> if(2, 0, s27, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s172 + tail(z'), z'', append(z'', 0)) :|: s172 >= 0, s172 <= x + 1, s27 >= 0, s27 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, s28, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s173 + tail(z'), z'', append(z'', x)) :|: s173 >= 0, s173 <= 0 + 1, s28 >= 0, s28 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, s29, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s174 + tail(z'), z'', append(z'', 0)) :|: s174 >= 0, s174 <= 0 + 1, s29 >= 0, s29 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 addLists(z, z', z'') -{ 7 }-> if(1, 2, s100, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s245 + tail(z'), z'', append(z'', x'')) :|: s245 >= 0, s245 <= 0 + 1, s100 >= 0, s100 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, s101, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s246 + tail(z'), z'', append(z'', 0)) :|: s246 >= 0, s246 <= 0 + 1, s101 >= 0, s101 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 8 + x'' }-> if(1, 2, s102, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s247 + tail(z'), z'', append(z'', x1)) :|: s247 >= 0, s247 <= x'' + 1, s102 >= 0, s102 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 + x'' }-> if(1, 2, s103, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s248 + tail(z'), z'', append(z'', 0)) :|: s248 >= 0, s248 <= x'' + 1, s103 >= 0, s103 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 2, s104, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s249 + tail(z'), z'', append(z'', x'')) :|: s249 >= 0, s249 <= 0 + 1, s104 >= 0, s104 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, s105, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s250 + tail(z'), z'', append(z'', 0)) :|: s250 >= 0, s250 <= 0 + 1, s105 >= 0, s105 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 7 + x' }-> if(1, 2, s106, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s251 + tail(z'), z'', append(z'', x'')) :|: s251 >= 0, s251 <= x' + 1, s106 >= 0, s106 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 + x' }-> if(1, 2, s107, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s252 + tail(z'), z'', append(z'', 0)) :|: s252 >= 0, s252 <= x' + 1, s107 >= 0, s107 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, s108, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s253 + tail(z'), z'', append(z'', x')) :|: s253 >= 0, s253 <= 0 + 1, s108 >= 0, s108 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, s109, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s254 + tail(z'), z'', append(z'', 0)) :|: s254 >= 0, s254 <= 0 + 1, s109 >= 0, s109 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 addLists(z, z', z'') -{ 9 + x1 }-> if(1, 2, s94, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s239 + tail(z'), z'', append(z'', x2)) :|: s239 >= 0, s239 <= x1 + 1, s94 >= 0, s94 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 8 + x1 }-> if(1, 2, s95, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s240 + tail(z'), z'', append(z'', 0)) :|: s240 >= 0, s240 <= x1 + 1, s95 >= 0, s95 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 8 }-> if(1, 2, s96, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s241 + tail(z'), z'', append(z'', x1)) :|: s241 >= 0, s241 <= 0 + 1, s96 >= 0, s96 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 2, s97, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s242 + tail(z'), z'', append(z'', 0)) :|: s242 >= 0, s242 <= 0 + 1, s97 >= 0, s97 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 8 + x'' }-> if(1, 2, s98, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s243 + tail(z'), z'', append(z'', x1)) :|: s243 >= 0, s243 <= x'' + 1, s98 >= 0, s98 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 + x'' }-> if(1, 2, s99, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s244 + tail(z'), z'', append(z'', 0)) :|: s244 >= 0, s244 <= x'' + 1, s99 >= 0, s99 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 9 + x2 }-> if(1, 1, s126, tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + s271 + tail(z'), z'', append(z'', x3)) :|: s271 >= 0, s271 <= x2 + 1, s126 >= 0, s126 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0, z' = 1 + x3 + xs4, xs4 >= 0, x3 >= 0 addLists(z, z', z'') -{ 8 + x2 }-> if(1, 1, s127, tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + s272 + tail(z'), z'', append(z'', 0)) :|: s272 >= 0, s272 <= x2 + 1, s127 >= 0, s127 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 8 }-> if(1, 1, s128, tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + s273 + tail(z'), z'', append(z'', x2)) :|: s273 >= 0, s273 <= 0 + 1, s128 >= 0, s128 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 1, s129, tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + s274 + tail(z'), z'', append(z'', 0)) :|: s274 >= 0, s274 <= 0 + 1, s129 >= 0, s129 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 8 + x1 }-> if(1, 1, s130, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s275 + tail(z'), z'', append(z'', x2)) :|: s275 >= 0, s275 <= x1 + 1, s130 >= 0, s130 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 7 + x1 }-> if(1, 1, s131, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s276 + tail(z'), z'', append(z'', 0)) :|: s276 >= 0, s276 <= x1 + 1, s131 >= 0, s131 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 1, s132, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s277 + tail(z'), z'', append(z'', x1)) :|: s277 >= 0, s277 <= 0 + 1, s132 >= 0, s132 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, s133, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s278 + tail(z'), z'', append(z'', 0)) :|: s278 >= 0, s278 <= 0 + 1, s133 >= 0, s133 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 8 + x1 }-> if(1, 1, s134, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s279 + tail(z'), z'', append(z'', x2)) :|: s279 >= 0, s279 <= x1 + 1, s134 >= 0, s134 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 7 + x1 }-> if(1, 1, s135, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s280 + tail(z'), z'', append(z'', 0)) :|: s280 >= 0, s280 <= x1 + 1, s135 >= 0, s135 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 1, s136, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s281 + tail(z'), z'', append(z'', x1)) :|: s281 >= 0, s281 <= 0 + 1, s136 >= 0, s136 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, s137, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s282 + tail(z'), z'', append(z'', 0)) :|: s282 >= 0, s282 <= 0 + 1, s137 >= 0, s137 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 + x'' }-> if(1, 1, s138, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s283 + tail(z'), z'', append(z'', x1)) :|: s283 >= 0, s283 <= x'' + 1, s138 >= 0, s138 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 + x'' }-> if(1, 1, s139, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s284 + tail(z'), z'', append(z'', 0)) :|: s284 >= 0, s284 <= x'' + 1, s139 >= 0, s139 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, s140, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s285 + tail(z'), z'', append(z'', x'')) :|: s285 >= 0, s285 <= 0 + 1, s140 >= 0, s140 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, s141, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s286 + tail(z'), z'', append(z'', 0)) :|: s286 >= 0, s286 <= 0 + 1, s141 >= 0, s141 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 8 + x1 }-> if(1, 0, s110, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s255 + tail(z'), z'', append(z'', x2)) :|: s255 >= 0, s255 <= x1 + 1, s110 >= 0, s110 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 7 + x1 }-> if(1, 0, s111, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s256 + tail(z'), z'', append(z'', 0)) :|: s256 >= 0, s256 <= x1 + 1, s111 >= 0, s111 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 0, s112, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s257 + tail(z'), z'', append(z'', x1)) :|: s257 >= 0, s257 <= 0 + 1, s112 >= 0, s112 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 0, s113, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s258 + tail(z'), z'', append(z'', 0)) :|: s258 >= 0, s258 <= 0 + 1, s113 >= 0, s113 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 + x'' }-> if(1, 0, s114, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s259 + tail(z'), z'', append(z'', x1)) :|: s259 >= 0, s259 <= x'' + 1, s114 >= 0, s114 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 + x'' }-> if(1, 0, s115, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s260 + tail(z'), z'', append(z'', 0)) :|: s260 >= 0, s260 <= x'' + 1, s115 >= 0, s115 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 0, s116, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s261 + tail(z'), z'', append(z'', x'')) :|: s261 >= 0, s261 <= 0 + 1, s116 >= 0, s116 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, s117, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s262 + tail(z'), z'', append(z'', 0)) :|: s262 >= 0, s262 <= 0 + 1, s117 >= 0, s117 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 7 + x'' }-> if(1, 0, s118, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s263 + tail(z'), z'', append(z'', x1)) :|: s263 >= 0, s263 <= x'' + 1, s118 >= 0, s118 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 + x'' }-> if(1, 0, s119, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s264 + tail(z'), z'', append(z'', 0)) :|: s264 >= 0, s264 <= x'' + 1, s119 >= 0, s119 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 0, s120, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s265 + tail(z'), z'', append(z'', x'')) :|: s265 >= 0, s265 <= 0 + 1, s120 >= 0, s120 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, s121, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s266 + tail(z'), z'', append(z'', 0)) :|: s266 >= 0, s266 <= 0 + 1, s121 >= 0, s121 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 + x' }-> if(1, 0, s122, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s267 + tail(z'), z'', append(z'', x'')) :|: s267 >= 0, s267 <= x' + 1, s122 >= 0, s122 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 + x' }-> if(1, 0, s123, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s268 + tail(z'), z'', append(z'', 0)) :|: s268 >= 0, s268 <= x' + 1, s123 >= 0, s123 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, s124, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s269 + tail(z'), z'', append(z'', x')) :|: s269 >= 0, s269 <= 0 + 1, s124 >= 0, s124 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, s125, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s270 + tail(z'), z'', append(z'', 0)) :|: s270 >= 0, s270 <= 0 + 1, s125 >= 0, s125 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 8 + x'' }-> if(0, 2, s46, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s191 + tail(z'), z'', append(z'', x1)) :|: s191 >= 0, s191 <= x'' + 1, s46 >= 0, s46 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 + x'' }-> if(0, 2, s47, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s192 + tail(z'), z'', append(z'', 0)) :|: s192 >= 0, s192 <= x'' + 1, s47 >= 0, s47 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 }-> if(0, 2, s48, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s193 + tail(z'), z'', append(z'', x'')) :|: s193 >= 0, s193 <= 0 + 1, s48 >= 0, s48 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 2, s49, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s194 + tail(z'), z'', append(z'', 0)) :|: s194 >= 0, s194 <= 0 + 1, s49 >= 0, s49 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 7 + x' }-> if(0, 2, s50, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s195 + tail(z'), z'', append(z'', x'')) :|: s195 >= 0, s195 <= x' + 1, s50 >= 0, s50 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 + x' }-> if(0, 2, s51, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s196 + tail(z'), z'', append(z'', 0)) :|: s196 >= 0, s196 <= x' + 1, s51 >= 0, s51 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 2, s52, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s197 + tail(z'), z'', append(z'', x')) :|: s197 >= 0, s197 <= 0 + 1, s52 >= 0, s52 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, s53, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s198 + tail(z'), z'', append(z'', 0)) :|: s198 >= 0, s198 <= 0 + 1, s53 >= 0, s53 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 7 + x' }-> if(0, 2, s54, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s199 + tail(z'), z'', append(z'', x'')) :|: s199 >= 0, s199 <= x' + 1, s54 >= 0, s54 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 + x' }-> if(0, 2, s55, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s200 + tail(z'), z'', append(z'', 0)) :|: s200 >= 0, s200 <= x' + 1, s55 >= 0, s55 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 2, s56, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s201 + tail(z'), z'', append(z'', x')) :|: s201 >= 0, s201 <= 0 + 1, s56 >= 0, s56 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, s57, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s202 + tail(z'), z'', append(z'', 0)) :|: s202 >= 0, s202 <= 0 + 1, s57 >= 0, s57 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 + x }-> if(0, 2, s58, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s203 + tail(z'), z'', append(z'', x')) :|: s203 >= 0, s203 <= x + 1, s58 >= 0, s58 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 + x }-> if(0, 2, s59, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s204 + tail(z'), z'', append(z'', 0)) :|: s204 >= 0, s204 <= x + 1, s59 >= 0, s59 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, s60, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s205 + tail(z'), z'', append(z'', x)) :|: s205 >= 0, s205 <= 0 + 1, s60 >= 0, s60 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, s61, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s206 + tail(z'), z'', append(z'', 0)) :|: s206 >= 0, s206 <= 0 + 1, s61 >= 0, s61 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 addLists(z, z', z'') -{ 8 + x1 }-> if(0, 1, s78, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s223 + tail(z'), z'', append(z'', x2)) :|: s223 >= 0, s223 <= x1 + 1, s78 >= 0, s78 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 7 + x1 }-> if(0, 1, s79, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s224 + tail(z'), z'', append(z'', 0)) :|: s224 >= 0, s224 <= x1 + 1, s79 >= 0, s79 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 }-> if(0, 1, s80, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s225 + tail(z'), z'', append(z'', x1)) :|: s225 >= 0, s225 <= 0 + 1, s80 >= 0, s80 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 1, s81, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s226 + tail(z'), z'', append(z'', 0)) :|: s226 >= 0, s226 <= 0 + 1, s81 >= 0, s81 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 + x'' }-> if(0, 1, s82, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s227 + tail(z'), z'', append(z'', x1)) :|: s227 >= 0, s227 <= x'' + 1, s82 >= 0, s82 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 + x'' }-> if(0, 1, s83, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s228 + tail(z'), z'', append(z'', 0)) :|: s228 >= 0, s228 <= x'' + 1, s83 >= 0, s83 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 1, s84, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s229 + tail(z'), z'', append(z'', x'')) :|: s229 >= 0, s229 <= 0 + 1, s84 >= 0, s84 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, s85, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s230 + tail(z'), z'', append(z'', 0)) :|: s230 >= 0, s230 <= 0 + 1, s85 >= 0, s85 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 7 + x'' }-> if(0, 1, s86, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s231 + tail(z'), z'', append(z'', x1)) :|: s231 >= 0, s231 <= x'' + 1, s86 >= 0, s86 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 + x'' }-> if(0, 1, s87, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s232 + tail(z'), z'', append(z'', 0)) :|: s232 >= 0, s232 <= x'' + 1, s87 >= 0, s87 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 1, s88, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s233 + tail(z'), z'', append(z'', x'')) :|: s233 >= 0, s233 <= 0 + 1, s88 >= 0, s88 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, s89, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s234 + tail(z'), z'', append(z'', 0)) :|: s234 >= 0, s234 <= 0 + 1, s89 >= 0, s89 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 + x' }-> if(0, 1, s90, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s235 + tail(z'), z'', append(z'', x'')) :|: s235 >= 0, s235 <= x' + 1, s90 >= 0, s90 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 + x' }-> if(0, 1, s91, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s236 + tail(z'), z'', append(z'', 0)) :|: s236 >= 0, s236 <= x' + 1, s91 >= 0, s91 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, s92, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s237 + tail(z'), z'', append(z'', x')) :|: s237 >= 0, s237 <= 0 + 1, s92 >= 0, s92 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, s93, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s238 + tail(z'), z'', append(z'', 0)) :|: s238 >= 0, s238 <= 0 + 1, s93 >= 0, s93 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 7 + x'' }-> if(0, 0, s62, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s207 + tail(z'), z'', append(z'', x1)) :|: s207 >= 0, s207 <= x'' + 1, s62 >= 0, s62 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 + x'' }-> if(0, 0, s63, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s208 + tail(z'), z'', append(z'', 0)) :|: s208 >= 0, s208 <= x'' + 1, s63 >= 0, s63 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 0, s64, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s209 + tail(z'), z'', append(z'', x'')) :|: s209 >= 0, s209 <= 0 + 1, s64 >= 0, s64 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 0, s65, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s210 + tail(z'), z'', append(z'', 0)) :|: s210 >= 0, s210 <= 0 + 1, s65 >= 0, s65 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 + x' }-> if(0, 0, s66, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s211 + tail(z'), z'', append(z'', x'')) :|: s211 >= 0, s211 <= x' + 1, s66 >= 0, s66 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 + x' }-> if(0, 0, s67, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s212 + tail(z'), z'', append(z'', 0)) :|: s212 >= 0, s212 <= x' + 1, s67 >= 0, s67 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 0, s68, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s213 + tail(z'), z'', append(z'', x')) :|: s213 >= 0, s213 <= 0 + 1, s68 >= 0, s68 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, s69, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s214 + tail(z'), z'', append(z'', 0)) :|: s214 >= 0, s214 <= 0 + 1, s69 >= 0, s69 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 + x' }-> if(0, 0, s70, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s215 + tail(z'), z'', append(z'', x'')) :|: s215 >= 0, s215 <= x' + 1, s70 >= 0, s70 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 + x' }-> if(0, 0, s71, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s216 + tail(z'), z'', append(z'', 0)) :|: s216 >= 0, s216 <= x' + 1, s71 >= 0, s71 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 0, s72, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s217 + tail(z'), z'', append(z'', x')) :|: s217 >= 0, s217 <= 0 + 1, s72 >= 0, s72 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, s73, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s218 + tail(z'), z'', append(z'', 0)) :|: s218 >= 0, s218 <= 0 + 1, s73 >= 0, s73 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 + x }-> if(0, 0, s74, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s219 + tail(z'), z'', append(z'', x')) :|: s219 >= 0, s219 <= x + 1, s74 >= 0, s74 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 + x }-> if(0, 0, s75, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s220 + tail(z'), z'', append(z'', 0)) :|: s220 >= 0, s220 <= x + 1, s75 >= 0, s75 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, s76, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s221 + tail(z'), z'', append(z'', x)) :|: s221 >= 0, s221 <= 0 + 1, s76 >= 0, s76 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, s77, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s222 + tail(z'), z'', append(z'', 0)) :|: s222 >= 0, s222 <= 0 + 1, s77 >= 0, s77 <= 2, z >= 0, z' >= 0, z'' >= 0 append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 append(z, z') -{ 1 }-> 1 + y + append(ys, z') :|: ys >= 0, y >= 0, z' >= 0, z = 1 + y + ys append(z, z') -{ 1 }-> 1 + z' + 1 :|: z = 1, z' >= 0 head(z) -{ 1 }-> x :|: z = 1 + x + xs, xs >= 0, x >= 0 head(z) -{ 0 }-> 0 :|: z >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> z5 :|: z1 >= 0, z' = 2, z5 >= 0, z6 >= 0, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z1, z2, z6) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 2, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z3, z4, z5) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 1, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z5 >= 0, z6 >= 0, z' = 1, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z' = 2, z = 1, z5 >= 0, z6 >= 0, z4 >= 0, z'' >= 0, z3 >= 0, z2 >= 0 inc(z) -{ 1 + z }-> 1 + s142 :|: s142 >= 0, s142 <= z - 1 + 1, z - 1 >= 0 inc(z) -{ 1 }-> 1 + 0 :|: z = 0 isEmpty(z) -{ 1 }-> 2 :|: z = 1 isEmpty(z) -{ 1 }-> 1 :|: z = 1 + x + xs, xs >= 0, x >= 0 isEmpty(z) -{ 0 }-> 0 :|: z >= 0 isZero(z) -{ 1 }-> 2 :|: z = 0 isZero(z) -{ 1 }-> 1 :|: z - 1 >= 0 p(z) -{ 1 }-> 0 :|: z = 1 + 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 1 }-> 1 + p(1 + (z - 2)) :|: z - 2 >= 0 tail(z) -{ 1 }-> xs :|: z = 1 + x + xs, xs >= 0, x >= 0 tail(z) -{ 1 }-> 1 :|: z = 1 tail(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {tail}, {append}, {head}, {p}, {addLists,if}, {addList} Previous analysis results are: isEmpty: runtime: O(1) [1], size: O(1) [2] isZero: runtime: O(1) [1], size: O(1) [2] inc: runtime: O(n^1) [1 + z], size: O(n^1) [1 + z] ---------------------------------------- (41) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using KoAT for: tail after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: z ---------------------------------------- (42) Obligation: Complexity RNTS consisting of the following rules: addList(z, z') -{ 1 }-> addLists(z, z', 1) :|: z >= 0, z' >= 0 addLists(z, z', z'') -{ 9 + x'' }-> if(2, 2, s, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s143 + tail(z'), z'', append(z'', x1)) :|: s143 >= 0, s143 <= x'' + 1, s >= 0, s <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 8 + x'' }-> if(2, 2, s', tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s144 + tail(z'), z'', append(z'', 0)) :|: s144 >= 0, s144 <= x'' + 1, s' >= 0, s' <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 8 }-> if(2, 2, s'', tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s145 + tail(z'), z'', append(z'', x'')) :|: s145 >= 0, s145 <= 0 + 1, s'' >= 0, s'' <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 2, s1, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s146 + tail(z'), z'', append(z'', 0)) :|: s146 >= 0, s146 <= 0 + 1, s1 >= 0, s1 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 7 + x }-> if(2, 2, s10, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s155 + tail(z'), z'', append(z'', x')) :|: s155 >= 0, s155 <= x + 1, s10 >= 0, s10 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 + x }-> if(2, 2, s11, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s156 + tail(z'), z'', append(z'', 0)) :|: s156 >= 0, s156 <= x + 1, s11 >= 0, s11 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, s12, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s157 + tail(z'), z'', append(z'', x)) :|: s157 >= 0, s157 <= 0 + 1, s12 >= 0, s12 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, s13, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s158 + tail(z'), z'', append(z'', 0)) :|: s158 >= 0, s158 <= 0 + 1, s13 >= 0, s13 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 addLists(z, z', z'') -{ 8 + x' }-> if(2, 2, s2, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s147 + tail(z'), z'', append(z'', x'')) :|: s147 >= 0, s147 <= x' + 1, s2 >= 0, s2 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 + x' }-> if(2, 2, s3, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s148 + tail(z'), z'', append(z'', 0)) :|: s148 >= 0, s148 <= x' + 1, s3 >= 0, s3 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 2, s4, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s149 + tail(z'), z'', append(z'', x')) :|: s149 >= 0, s149 <= 0 + 1, s4 >= 0, s4 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, s5, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s150 + tail(z'), z'', append(z'', 0)) :|: s150 >= 0, s150 <= 0 + 1, s5 >= 0, s5 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 8 + x' }-> if(2, 2, s6, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s151 + tail(z'), z'', append(z'', x'')) :|: s151 >= 0, s151 <= x' + 1, s6 >= 0, s6 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 + x' }-> if(2, 2, s7, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s152 + tail(z'), z'', append(z'', 0)) :|: s152 >= 0, s152 <= x' + 1, s7 >= 0, s7 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 2, s8, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s153 + tail(z'), z'', append(z'', x')) :|: s153 >= 0, s153 <= 0 + 1, s8 >= 0, s8 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, s9, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s154 + tail(z'), z'', append(z'', 0)) :|: s154 >= 0, s154 <= 0 + 1, s9 >= 0, s9 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 9 + x1 }-> if(2, 1, s30, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s175 + tail(z'), z'', append(z'', x2)) :|: s175 >= 0, s175 <= x1 + 1, s30 >= 0, s30 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 8 + x1 }-> if(2, 1, s31, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s176 + tail(z'), z'', append(z'', 0)) :|: s176 >= 0, s176 <= x1 + 1, s31 >= 0, s31 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 8 }-> if(2, 1, s32, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s177 + tail(z'), z'', append(z'', x1)) :|: s177 >= 0, s177 <= 0 + 1, s32 >= 0, s32 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 1, s33, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s178 + tail(z'), z'', append(z'', 0)) :|: s178 >= 0, s178 <= 0 + 1, s33 >= 0, s33 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 8 + x'' }-> if(2, 1, s34, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s179 + tail(z'), z'', append(z'', x1)) :|: s179 >= 0, s179 <= x'' + 1, s34 >= 0, s34 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 + x'' }-> if(2, 1, s35, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s180 + tail(z'), z'', append(z'', 0)) :|: s180 >= 0, s180 <= x'' + 1, s35 >= 0, s35 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 1, s36, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s181 + tail(z'), z'', append(z'', x'')) :|: s181 >= 0, s181 <= 0 + 1, s36 >= 0, s36 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, s37, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s182 + tail(z'), z'', append(z'', 0)) :|: s182 >= 0, s182 <= 0 + 1, s37 >= 0, s37 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 8 + x'' }-> if(2, 1, s38, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s183 + tail(z'), z'', append(z'', x1)) :|: s183 >= 0, s183 <= x'' + 1, s38 >= 0, s38 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 + x'' }-> if(2, 1, s39, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s184 + tail(z'), z'', append(z'', 0)) :|: s184 >= 0, s184 <= x'' + 1, s39 >= 0, s39 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 1, s40, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s185 + tail(z'), z'', append(z'', x'')) :|: s185 >= 0, s185 <= 0 + 1, s40 >= 0, s40 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, s41, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s186 + tail(z'), z'', append(z'', 0)) :|: s186 >= 0, s186 <= 0 + 1, s41 >= 0, s41 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 7 + x' }-> if(2, 1, s42, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s187 + tail(z'), z'', append(z'', x'')) :|: s187 >= 0, s187 <= x' + 1, s42 >= 0, s42 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 + x' }-> if(2, 1, s43, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s188 + tail(z'), z'', append(z'', 0)) :|: s188 >= 0, s188 <= x' + 1, s43 >= 0, s43 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, s44, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s189 + tail(z'), z'', append(z'', x')) :|: s189 >= 0, s189 <= 0 + 1, s44 >= 0, s44 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, s45, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s190 + tail(z'), z'', append(z'', 0)) :|: s190 >= 0, s190 <= 0 + 1, s45 >= 0, s45 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 8 + x'' }-> if(2, 0, s14, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s159 + tail(z'), z'', append(z'', x1)) :|: s159 >= 0, s159 <= x'' + 1, s14 >= 0, s14 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 + x'' }-> if(2, 0, s15, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s160 + tail(z'), z'', append(z'', 0)) :|: s160 >= 0, s160 <= x'' + 1, s15 >= 0, s15 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 0, s16, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s161 + tail(z'), z'', append(z'', x'')) :|: s161 >= 0, s161 <= 0 + 1, s16 >= 0, s16 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 0, s17, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s162 + tail(z'), z'', append(z'', 0)) :|: s162 >= 0, s162 <= 0 + 1, s17 >= 0, s17 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 7 + x' }-> if(2, 0, s18, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s163 + tail(z'), z'', append(z'', x'')) :|: s163 >= 0, s163 <= x' + 1, s18 >= 0, s18 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 + x' }-> if(2, 0, s19, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s164 + tail(z'), z'', append(z'', 0)) :|: s164 >= 0, s164 <= x' + 1, s19 >= 0, s19 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 0, s20, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s165 + tail(z'), z'', append(z'', x')) :|: s165 >= 0, s165 <= 0 + 1, s20 >= 0, s20 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, s21, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s166 + tail(z'), z'', append(z'', 0)) :|: s166 >= 0, s166 <= 0 + 1, s21 >= 0, s21 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 7 + x' }-> if(2, 0, s22, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s167 + tail(z'), z'', append(z'', x'')) :|: s167 >= 0, s167 <= x' + 1, s22 >= 0, s22 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 + x' }-> if(2, 0, s23, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s168 + tail(z'), z'', append(z'', 0)) :|: s168 >= 0, s168 <= x' + 1, s23 >= 0, s23 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 0, s24, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s169 + tail(z'), z'', append(z'', x')) :|: s169 >= 0, s169 <= 0 + 1, s24 >= 0, s24 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, s25, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s170 + tail(z'), z'', append(z'', 0)) :|: s170 >= 0, s170 <= 0 + 1, s25 >= 0, s25 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 + x }-> if(2, 0, s26, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s171 + tail(z'), z'', append(z'', x')) :|: s171 >= 0, s171 <= x + 1, s26 >= 0, s26 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 + x }-> if(2, 0, s27, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s172 + tail(z'), z'', append(z'', 0)) :|: s172 >= 0, s172 <= x + 1, s27 >= 0, s27 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, s28, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s173 + tail(z'), z'', append(z'', x)) :|: s173 >= 0, s173 <= 0 + 1, s28 >= 0, s28 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, s29, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s174 + tail(z'), z'', append(z'', 0)) :|: s174 >= 0, s174 <= 0 + 1, s29 >= 0, s29 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 addLists(z, z', z'') -{ 7 }-> if(1, 2, s100, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s245 + tail(z'), z'', append(z'', x'')) :|: s245 >= 0, s245 <= 0 + 1, s100 >= 0, s100 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, s101, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s246 + tail(z'), z'', append(z'', 0)) :|: s246 >= 0, s246 <= 0 + 1, s101 >= 0, s101 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 8 + x'' }-> if(1, 2, s102, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s247 + tail(z'), z'', append(z'', x1)) :|: s247 >= 0, s247 <= x'' + 1, s102 >= 0, s102 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 + x'' }-> if(1, 2, s103, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s248 + tail(z'), z'', append(z'', 0)) :|: s248 >= 0, s248 <= x'' + 1, s103 >= 0, s103 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 2, s104, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s249 + tail(z'), z'', append(z'', x'')) :|: s249 >= 0, s249 <= 0 + 1, s104 >= 0, s104 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, s105, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s250 + tail(z'), z'', append(z'', 0)) :|: s250 >= 0, s250 <= 0 + 1, s105 >= 0, s105 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 7 + x' }-> if(1, 2, s106, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s251 + tail(z'), z'', append(z'', x'')) :|: s251 >= 0, s251 <= x' + 1, s106 >= 0, s106 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 + x' }-> if(1, 2, s107, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s252 + tail(z'), z'', append(z'', 0)) :|: s252 >= 0, s252 <= x' + 1, s107 >= 0, s107 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, s108, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s253 + tail(z'), z'', append(z'', x')) :|: s253 >= 0, s253 <= 0 + 1, s108 >= 0, s108 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, s109, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s254 + tail(z'), z'', append(z'', 0)) :|: s254 >= 0, s254 <= 0 + 1, s109 >= 0, s109 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 addLists(z, z', z'') -{ 9 + x1 }-> if(1, 2, s94, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s239 + tail(z'), z'', append(z'', x2)) :|: s239 >= 0, s239 <= x1 + 1, s94 >= 0, s94 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 8 + x1 }-> if(1, 2, s95, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s240 + tail(z'), z'', append(z'', 0)) :|: s240 >= 0, s240 <= x1 + 1, s95 >= 0, s95 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 8 }-> if(1, 2, s96, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s241 + tail(z'), z'', append(z'', x1)) :|: s241 >= 0, s241 <= 0 + 1, s96 >= 0, s96 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 2, s97, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s242 + tail(z'), z'', append(z'', 0)) :|: s242 >= 0, s242 <= 0 + 1, s97 >= 0, s97 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 8 + x'' }-> if(1, 2, s98, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s243 + tail(z'), z'', append(z'', x1)) :|: s243 >= 0, s243 <= x'' + 1, s98 >= 0, s98 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 + x'' }-> if(1, 2, s99, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s244 + tail(z'), z'', append(z'', 0)) :|: s244 >= 0, s244 <= x'' + 1, s99 >= 0, s99 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 9 + x2 }-> if(1, 1, s126, tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + s271 + tail(z'), z'', append(z'', x3)) :|: s271 >= 0, s271 <= x2 + 1, s126 >= 0, s126 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0, z' = 1 + x3 + xs4, xs4 >= 0, x3 >= 0 addLists(z, z', z'') -{ 8 + x2 }-> if(1, 1, s127, tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + s272 + tail(z'), z'', append(z'', 0)) :|: s272 >= 0, s272 <= x2 + 1, s127 >= 0, s127 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 8 }-> if(1, 1, s128, tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + s273 + tail(z'), z'', append(z'', x2)) :|: s273 >= 0, s273 <= 0 + 1, s128 >= 0, s128 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 1, s129, tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + s274 + tail(z'), z'', append(z'', 0)) :|: s274 >= 0, s274 <= 0 + 1, s129 >= 0, s129 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 8 + x1 }-> if(1, 1, s130, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s275 + tail(z'), z'', append(z'', x2)) :|: s275 >= 0, s275 <= x1 + 1, s130 >= 0, s130 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 7 + x1 }-> if(1, 1, s131, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s276 + tail(z'), z'', append(z'', 0)) :|: s276 >= 0, s276 <= x1 + 1, s131 >= 0, s131 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 1, s132, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s277 + tail(z'), z'', append(z'', x1)) :|: s277 >= 0, s277 <= 0 + 1, s132 >= 0, s132 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, s133, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s278 + tail(z'), z'', append(z'', 0)) :|: s278 >= 0, s278 <= 0 + 1, s133 >= 0, s133 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 8 + x1 }-> if(1, 1, s134, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s279 + tail(z'), z'', append(z'', x2)) :|: s279 >= 0, s279 <= x1 + 1, s134 >= 0, s134 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 7 + x1 }-> if(1, 1, s135, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s280 + tail(z'), z'', append(z'', 0)) :|: s280 >= 0, s280 <= x1 + 1, s135 >= 0, s135 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 1, s136, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s281 + tail(z'), z'', append(z'', x1)) :|: s281 >= 0, s281 <= 0 + 1, s136 >= 0, s136 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, s137, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s282 + tail(z'), z'', append(z'', 0)) :|: s282 >= 0, s282 <= 0 + 1, s137 >= 0, s137 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 + x'' }-> if(1, 1, s138, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s283 + tail(z'), z'', append(z'', x1)) :|: s283 >= 0, s283 <= x'' + 1, s138 >= 0, s138 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 + x'' }-> if(1, 1, s139, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s284 + tail(z'), z'', append(z'', 0)) :|: s284 >= 0, s284 <= x'' + 1, s139 >= 0, s139 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, s140, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s285 + tail(z'), z'', append(z'', x'')) :|: s285 >= 0, s285 <= 0 + 1, s140 >= 0, s140 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, s141, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s286 + tail(z'), z'', append(z'', 0)) :|: s286 >= 0, s286 <= 0 + 1, s141 >= 0, s141 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 8 + x1 }-> if(1, 0, s110, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s255 + tail(z'), z'', append(z'', x2)) :|: s255 >= 0, s255 <= x1 + 1, s110 >= 0, s110 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 7 + x1 }-> if(1, 0, s111, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s256 + tail(z'), z'', append(z'', 0)) :|: s256 >= 0, s256 <= x1 + 1, s111 >= 0, s111 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 0, s112, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s257 + tail(z'), z'', append(z'', x1)) :|: s257 >= 0, s257 <= 0 + 1, s112 >= 0, s112 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 0, s113, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s258 + tail(z'), z'', append(z'', 0)) :|: s258 >= 0, s258 <= 0 + 1, s113 >= 0, s113 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 + x'' }-> if(1, 0, s114, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s259 + tail(z'), z'', append(z'', x1)) :|: s259 >= 0, s259 <= x'' + 1, s114 >= 0, s114 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 + x'' }-> if(1, 0, s115, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s260 + tail(z'), z'', append(z'', 0)) :|: s260 >= 0, s260 <= x'' + 1, s115 >= 0, s115 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 0, s116, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s261 + tail(z'), z'', append(z'', x'')) :|: s261 >= 0, s261 <= 0 + 1, s116 >= 0, s116 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, s117, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s262 + tail(z'), z'', append(z'', 0)) :|: s262 >= 0, s262 <= 0 + 1, s117 >= 0, s117 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 7 + x'' }-> if(1, 0, s118, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s263 + tail(z'), z'', append(z'', x1)) :|: s263 >= 0, s263 <= x'' + 1, s118 >= 0, s118 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 + x'' }-> if(1, 0, s119, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s264 + tail(z'), z'', append(z'', 0)) :|: s264 >= 0, s264 <= x'' + 1, s119 >= 0, s119 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 0, s120, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s265 + tail(z'), z'', append(z'', x'')) :|: s265 >= 0, s265 <= 0 + 1, s120 >= 0, s120 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, s121, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s266 + tail(z'), z'', append(z'', 0)) :|: s266 >= 0, s266 <= 0 + 1, s121 >= 0, s121 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 + x' }-> if(1, 0, s122, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s267 + tail(z'), z'', append(z'', x'')) :|: s267 >= 0, s267 <= x' + 1, s122 >= 0, s122 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 + x' }-> if(1, 0, s123, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s268 + tail(z'), z'', append(z'', 0)) :|: s268 >= 0, s268 <= x' + 1, s123 >= 0, s123 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, s124, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s269 + tail(z'), z'', append(z'', x')) :|: s269 >= 0, s269 <= 0 + 1, s124 >= 0, s124 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, s125, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s270 + tail(z'), z'', append(z'', 0)) :|: s270 >= 0, s270 <= 0 + 1, s125 >= 0, s125 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 8 + x'' }-> if(0, 2, s46, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s191 + tail(z'), z'', append(z'', x1)) :|: s191 >= 0, s191 <= x'' + 1, s46 >= 0, s46 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 + x'' }-> if(0, 2, s47, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s192 + tail(z'), z'', append(z'', 0)) :|: s192 >= 0, s192 <= x'' + 1, s47 >= 0, s47 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 }-> if(0, 2, s48, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s193 + tail(z'), z'', append(z'', x'')) :|: s193 >= 0, s193 <= 0 + 1, s48 >= 0, s48 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 2, s49, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s194 + tail(z'), z'', append(z'', 0)) :|: s194 >= 0, s194 <= 0 + 1, s49 >= 0, s49 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 7 + x' }-> if(0, 2, s50, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s195 + tail(z'), z'', append(z'', x'')) :|: s195 >= 0, s195 <= x' + 1, s50 >= 0, s50 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 + x' }-> if(0, 2, s51, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s196 + tail(z'), z'', append(z'', 0)) :|: s196 >= 0, s196 <= x' + 1, s51 >= 0, s51 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 2, s52, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s197 + tail(z'), z'', append(z'', x')) :|: s197 >= 0, s197 <= 0 + 1, s52 >= 0, s52 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, s53, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s198 + tail(z'), z'', append(z'', 0)) :|: s198 >= 0, s198 <= 0 + 1, s53 >= 0, s53 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 7 + x' }-> if(0, 2, s54, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s199 + tail(z'), z'', append(z'', x'')) :|: s199 >= 0, s199 <= x' + 1, s54 >= 0, s54 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 + x' }-> if(0, 2, s55, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s200 + tail(z'), z'', append(z'', 0)) :|: s200 >= 0, s200 <= x' + 1, s55 >= 0, s55 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 2, s56, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s201 + tail(z'), z'', append(z'', x')) :|: s201 >= 0, s201 <= 0 + 1, s56 >= 0, s56 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, s57, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s202 + tail(z'), z'', append(z'', 0)) :|: s202 >= 0, s202 <= 0 + 1, s57 >= 0, s57 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 + x }-> if(0, 2, s58, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s203 + tail(z'), z'', append(z'', x')) :|: s203 >= 0, s203 <= x + 1, s58 >= 0, s58 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 + x }-> if(0, 2, s59, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s204 + tail(z'), z'', append(z'', 0)) :|: s204 >= 0, s204 <= x + 1, s59 >= 0, s59 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, s60, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s205 + tail(z'), z'', append(z'', x)) :|: s205 >= 0, s205 <= 0 + 1, s60 >= 0, s60 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, s61, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s206 + tail(z'), z'', append(z'', 0)) :|: s206 >= 0, s206 <= 0 + 1, s61 >= 0, s61 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 addLists(z, z', z'') -{ 8 + x1 }-> if(0, 1, s78, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s223 + tail(z'), z'', append(z'', x2)) :|: s223 >= 0, s223 <= x1 + 1, s78 >= 0, s78 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 7 + x1 }-> if(0, 1, s79, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s224 + tail(z'), z'', append(z'', 0)) :|: s224 >= 0, s224 <= x1 + 1, s79 >= 0, s79 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 }-> if(0, 1, s80, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s225 + tail(z'), z'', append(z'', x1)) :|: s225 >= 0, s225 <= 0 + 1, s80 >= 0, s80 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 1, s81, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s226 + tail(z'), z'', append(z'', 0)) :|: s226 >= 0, s226 <= 0 + 1, s81 >= 0, s81 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 + x'' }-> if(0, 1, s82, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s227 + tail(z'), z'', append(z'', x1)) :|: s227 >= 0, s227 <= x'' + 1, s82 >= 0, s82 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 + x'' }-> if(0, 1, s83, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s228 + tail(z'), z'', append(z'', 0)) :|: s228 >= 0, s228 <= x'' + 1, s83 >= 0, s83 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 1, s84, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s229 + tail(z'), z'', append(z'', x'')) :|: s229 >= 0, s229 <= 0 + 1, s84 >= 0, s84 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, s85, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s230 + tail(z'), z'', append(z'', 0)) :|: s230 >= 0, s230 <= 0 + 1, s85 >= 0, s85 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 7 + x'' }-> if(0, 1, s86, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s231 + tail(z'), z'', append(z'', x1)) :|: s231 >= 0, s231 <= x'' + 1, s86 >= 0, s86 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 + x'' }-> if(0, 1, s87, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s232 + tail(z'), z'', append(z'', 0)) :|: s232 >= 0, s232 <= x'' + 1, s87 >= 0, s87 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 1, s88, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s233 + tail(z'), z'', append(z'', x'')) :|: s233 >= 0, s233 <= 0 + 1, s88 >= 0, s88 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, s89, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s234 + tail(z'), z'', append(z'', 0)) :|: s234 >= 0, s234 <= 0 + 1, s89 >= 0, s89 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 + x' }-> if(0, 1, s90, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s235 + tail(z'), z'', append(z'', x'')) :|: s235 >= 0, s235 <= x' + 1, s90 >= 0, s90 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 + x' }-> if(0, 1, s91, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s236 + tail(z'), z'', append(z'', 0)) :|: s236 >= 0, s236 <= x' + 1, s91 >= 0, s91 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, s92, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s237 + tail(z'), z'', append(z'', x')) :|: s237 >= 0, s237 <= 0 + 1, s92 >= 0, s92 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, s93, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s238 + tail(z'), z'', append(z'', 0)) :|: s238 >= 0, s238 <= 0 + 1, s93 >= 0, s93 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 7 + x'' }-> if(0, 0, s62, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s207 + tail(z'), z'', append(z'', x1)) :|: s207 >= 0, s207 <= x'' + 1, s62 >= 0, s62 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 + x'' }-> if(0, 0, s63, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s208 + tail(z'), z'', append(z'', 0)) :|: s208 >= 0, s208 <= x'' + 1, s63 >= 0, s63 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 0, s64, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s209 + tail(z'), z'', append(z'', x'')) :|: s209 >= 0, s209 <= 0 + 1, s64 >= 0, s64 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 0, s65, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s210 + tail(z'), z'', append(z'', 0)) :|: s210 >= 0, s210 <= 0 + 1, s65 >= 0, s65 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 + x' }-> if(0, 0, s66, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s211 + tail(z'), z'', append(z'', x'')) :|: s211 >= 0, s211 <= x' + 1, s66 >= 0, s66 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 + x' }-> if(0, 0, s67, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s212 + tail(z'), z'', append(z'', 0)) :|: s212 >= 0, s212 <= x' + 1, s67 >= 0, s67 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 0, s68, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s213 + tail(z'), z'', append(z'', x')) :|: s213 >= 0, s213 <= 0 + 1, s68 >= 0, s68 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, s69, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s214 + tail(z'), z'', append(z'', 0)) :|: s214 >= 0, s214 <= 0 + 1, s69 >= 0, s69 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 + x' }-> if(0, 0, s70, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s215 + tail(z'), z'', append(z'', x'')) :|: s215 >= 0, s215 <= x' + 1, s70 >= 0, s70 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 + x' }-> if(0, 0, s71, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s216 + tail(z'), z'', append(z'', 0)) :|: s216 >= 0, s216 <= x' + 1, s71 >= 0, s71 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 0, s72, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s217 + tail(z'), z'', append(z'', x')) :|: s217 >= 0, s217 <= 0 + 1, s72 >= 0, s72 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, s73, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s218 + tail(z'), z'', append(z'', 0)) :|: s218 >= 0, s218 <= 0 + 1, s73 >= 0, s73 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 + x }-> if(0, 0, s74, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s219 + tail(z'), z'', append(z'', x')) :|: s219 >= 0, s219 <= x + 1, s74 >= 0, s74 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 + x }-> if(0, 0, s75, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s220 + tail(z'), z'', append(z'', 0)) :|: s220 >= 0, s220 <= x + 1, s75 >= 0, s75 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, s76, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s221 + tail(z'), z'', append(z'', x)) :|: s221 >= 0, s221 <= 0 + 1, s76 >= 0, s76 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, s77, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s222 + tail(z'), z'', append(z'', 0)) :|: s222 >= 0, s222 <= 0 + 1, s77 >= 0, s77 <= 2, z >= 0, z' >= 0, z'' >= 0 append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 append(z, z') -{ 1 }-> 1 + y + append(ys, z') :|: ys >= 0, y >= 0, z' >= 0, z = 1 + y + ys append(z, z') -{ 1 }-> 1 + z' + 1 :|: z = 1, z' >= 0 head(z) -{ 1 }-> x :|: z = 1 + x + xs, xs >= 0, x >= 0 head(z) -{ 0 }-> 0 :|: z >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> z5 :|: z1 >= 0, z' = 2, z5 >= 0, z6 >= 0, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z1, z2, z6) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 2, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z3, z4, z5) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 1, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z5 >= 0, z6 >= 0, z' = 1, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z' = 2, z = 1, z5 >= 0, z6 >= 0, z4 >= 0, z'' >= 0, z3 >= 0, z2 >= 0 inc(z) -{ 1 + z }-> 1 + s142 :|: s142 >= 0, s142 <= z - 1 + 1, z - 1 >= 0 inc(z) -{ 1 }-> 1 + 0 :|: z = 0 isEmpty(z) -{ 1 }-> 2 :|: z = 1 isEmpty(z) -{ 1 }-> 1 :|: z = 1 + x + xs, xs >= 0, x >= 0 isEmpty(z) -{ 0 }-> 0 :|: z >= 0 isZero(z) -{ 1 }-> 2 :|: z = 0 isZero(z) -{ 1 }-> 1 :|: z - 1 >= 0 p(z) -{ 1 }-> 0 :|: z = 1 + 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 1 }-> 1 + p(1 + (z - 2)) :|: z - 2 >= 0 tail(z) -{ 1 }-> xs :|: z = 1 + x + xs, xs >= 0, x >= 0 tail(z) -{ 1 }-> 1 :|: z = 1 tail(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {tail}, {append}, {head}, {p}, {addLists,if}, {addList} Previous analysis results are: isEmpty: runtime: O(1) [1], size: O(1) [2] isZero: runtime: O(1) [1], size: O(1) [2] inc: runtime: O(n^1) [1 + z], size: O(n^1) [1 + z] tail: runtime: ?, size: O(n^1) [z] ---------------------------------------- (43) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: tail after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 1 ---------------------------------------- (44) Obligation: Complexity RNTS consisting of the following rules: addList(z, z') -{ 1 }-> addLists(z, z', 1) :|: z >= 0, z' >= 0 addLists(z, z', z'') -{ 9 + x'' }-> if(2, 2, s, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s143 + tail(z'), z'', append(z'', x1)) :|: s143 >= 0, s143 <= x'' + 1, s >= 0, s <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 8 + x'' }-> if(2, 2, s', tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s144 + tail(z'), z'', append(z'', 0)) :|: s144 >= 0, s144 <= x'' + 1, s' >= 0, s' <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 8 }-> if(2, 2, s'', tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s145 + tail(z'), z'', append(z'', x'')) :|: s145 >= 0, s145 <= 0 + 1, s'' >= 0, s'' <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 2, s1, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s146 + tail(z'), z'', append(z'', 0)) :|: s146 >= 0, s146 <= 0 + 1, s1 >= 0, s1 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 7 + x }-> if(2, 2, s10, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s155 + tail(z'), z'', append(z'', x')) :|: s155 >= 0, s155 <= x + 1, s10 >= 0, s10 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 + x }-> if(2, 2, s11, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s156 + tail(z'), z'', append(z'', 0)) :|: s156 >= 0, s156 <= x + 1, s11 >= 0, s11 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, s12, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s157 + tail(z'), z'', append(z'', x)) :|: s157 >= 0, s157 <= 0 + 1, s12 >= 0, s12 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 2, s13, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s158 + tail(z'), z'', append(z'', 0)) :|: s158 >= 0, s158 <= 0 + 1, s13 >= 0, s13 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 addLists(z, z', z'') -{ 8 + x' }-> if(2, 2, s2, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s147 + tail(z'), z'', append(z'', x'')) :|: s147 >= 0, s147 <= x' + 1, s2 >= 0, s2 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 + x' }-> if(2, 2, s3, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s148 + tail(z'), z'', append(z'', 0)) :|: s148 >= 0, s148 <= x' + 1, s3 >= 0, s3 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 2, s4, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s149 + tail(z'), z'', append(z'', x')) :|: s149 >= 0, s149 <= 0 + 1, s4 >= 0, s4 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, s5, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s150 + tail(z'), z'', append(z'', 0)) :|: s150 >= 0, s150 <= 0 + 1, s5 >= 0, s5 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 8 + x' }-> if(2, 2, s6, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s151 + tail(z'), z'', append(z'', x'')) :|: s151 >= 0, s151 <= x' + 1, s6 >= 0, s6 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 + x' }-> if(2, 2, s7, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s152 + tail(z'), z'', append(z'', 0)) :|: s152 >= 0, s152 <= x' + 1, s7 >= 0, s7 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 2, s8, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s153 + tail(z'), z'', append(z'', x')) :|: s153 >= 0, s153 <= 0 + 1, s8 >= 0, s8 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 2, s9, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s154 + tail(z'), z'', append(z'', 0)) :|: s154 >= 0, s154 <= 0 + 1, s9 >= 0, s9 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 9 + x1 }-> if(2, 1, s30, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s175 + tail(z'), z'', append(z'', x2)) :|: s175 >= 0, s175 <= x1 + 1, s30 >= 0, s30 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 8 + x1 }-> if(2, 1, s31, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s176 + tail(z'), z'', append(z'', 0)) :|: s176 >= 0, s176 <= x1 + 1, s31 >= 0, s31 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 8 }-> if(2, 1, s32, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s177 + tail(z'), z'', append(z'', x1)) :|: s177 >= 0, s177 <= 0 + 1, s32 >= 0, s32 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 1, s33, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s178 + tail(z'), z'', append(z'', 0)) :|: s178 >= 0, s178 <= 0 + 1, s33 >= 0, s33 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 8 + x'' }-> if(2, 1, s34, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s179 + tail(z'), z'', append(z'', x1)) :|: s179 >= 0, s179 <= x'' + 1, s34 >= 0, s34 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 + x'' }-> if(2, 1, s35, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s180 + tail(z'), z'', append(z'', 0)) :|: s180 >= 0, s180 <= x'' + 1, s35 >= 0, s35 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 1, s36, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s181 + tail(z'), z'', append(z'', x'')) :|: s181 >= 0, s181 <= 0 + 1, s36 >= 0, s36 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, s37, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s182 + tail(z'), z'', append(z'', 0)) :|: s182 >= 0, s182 <= 0 + 1, s37 >= 0, s37 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 8 + x'' }-> if(2, 1, s38, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s183 + tail(z'), z'', append(z'', x1)) :|: s183 >= 0, s183 <= x'' + 1, s38 >= 0, s38 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 + x'' }-> if(2, 1, s39, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s184 + tail(z'), z'', append(z'', 0)) :|: s184 >= 0, s184 <= x'' + 1, s39 >= 0, s39 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 1, s40, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s185 + tail(z'), z'', append(z'', x'')) :|: s185 >= 0, s185 <= 0 + 1, s40 >= 0, s40 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, s41, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s186 + tail(z'), z'', append(z'', 0)) :|: s186 >= 0, s186 <= 0 + 1, s41 >= 0, s41 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 7 + x' }-> if(2, 1, s42, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s187 + tail(z'), z'', append(z'', x'')) :|: s187 >= 0, s187 <= x' + 1, s42 >= 0, s42 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 + x' }-> if(2, 1, s43, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s188 + tail(z'), z'', append(z'', 0)) :|: s188 >= 0, s188 <= x' + 1, s43 >= 0, s43 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 1, s44, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s189 + tail(z'), z'', append(z'', x')) :|: s189 >= 0, s189 <= 0 + 1, s44 >= 0, s44 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 1, s45, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s190 + tail(z'), z'', append(z'', 0)) :|: s190 >= 0, s190 <= 0 + 1, s45 >= 0, s45 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 8 + x'' }-> if(2, 0, s14, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s159 + tail(z'), z'', append(z'', x1)) :|: s159 >= 0, s159 <= x'' + 1, s14 >= 0, s14 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 + x'' }-> if(2, 0, s15, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s160 + tail(z'), z'', append(z'', 0)) :|: s160 >= 0, s160 <= x'' + 1, s15 >= 0, s15 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 }-> if(2, 0, s16, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s161 + tail(z'), z'', append(z'', x'')) :|: s161 >= 0, s161 <= 0 + 1, s16 >= 0, s16 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 0, s17, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s162 + tail(z'), z'', append(z'', 0)) :|: s162 >= 0, s162 <= 0 + 1, s17 >= 0, s17 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 7 + x' }-> if(2, 0, s18, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s163 + tail(z'), z'', append(z'', x'')) :|: s163 >= 0, s163 <= x' + 1, s18 >= 0, s18 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 + x' }-> if(2, 0, s19, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s164 + tail(z'), z'', append(z'', 0)) :|: s164 >= 0, s164 <= x' + 1, s19 >= 0, s19 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 0, s20, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s165 + tail(z'), z'', append(z'', x')) :|: s165 >= 0, s165 <= 0 + 1, s20 >= 0, s20 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, s21, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s166 + tail(z'), z'', append(z'', 0)) :|: s166 >= 0, s166 <= 0 + 1, s21 >= 0, s21 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 7 + x' }-> if(2, 0, s22, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s167 + tail(z'), z'', append(z'', x'')) :|: s167 >= 0, s167 <= x' + 1, s22 >= 0, s22 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 + x' }-> if(2, 0, s23, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s168 + tail(z'), z'', append(z'', 0)) :|: s168 >= 0, s168 <= x' + 1, s23 >= 0, s23 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(2, 0, s24, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s169 + tail(z'), z'', append(z'', x')) :|: s169 >= 0, s169 <= 0 + 1, s24 >= 0, s24 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, s25, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s170 + tail(z'), z'', append(z'', 0)) :|: s170 >= 0, s170 <= 0 + 1, s25 >= 0, s25 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 + x }-> if(2, 0, s26, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s171 + tail(z'), z'', append(z'', x')) :|: s171 >= 0, s171 <= x + 1, s26 >= 0, s26 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 + x }-> if(2, 0, s27, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s172 + tail(z'), z'', append(z'', 0)) :|: s172 >= 0, s172 <= x + 1, s27 >= 0, s27 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(2, 0, s28, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s173 + tail(z'), z'', append(z'', x)) :|: s173 >= 0, s173 <= 0 + 1, s28 >= 0, s28 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(2, 0, s29, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s174 + tail(z'), z'', append(z'', 0)) :|: s174 >= 0, s174 <= 0 + 1, s29 >= 0, s29 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 addLists(z, z', z'') -{ 7 }-> if(1, 2, s100, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s245 + tail(z'), z'', append(z'', x'')) :|: s245 >= 0, s245 <= 0 + 1, s100 >= 0, s100 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, s101, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s246 + tail(z'), z'', append(z'', 0)) :|: s246 >= 0, s246 <= 0 + 1, s101 >= 0, s101 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 8 + x'' }-> if(1, 2, s102, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s247 + tail(z'), z'', append(z'', x1)) :|: s247 >= 0, s247 <= x'' + 1, s102 >= 0, s102 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 + x'' }-> if(1, 2, s103, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s248 + tail(z'), z'', append(z'', 0)) :|: s248 >= 0, s248 <= x'' + 1, s103 >= 0, s103 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 2, s104, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s249 + tail(z'), z'', append(z'', x'')) :|: s249 >= 0, s249 <= 0 + 1, s104 >= 0, s104 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, s105, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s250 + tail(z'), z'', append(z'', 0)) :|: s250 >= 0, s250 <= 0 + 1, s105 >= 0, s105 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 7 + x' }-> if(1, 2, s106, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s251 + tail(z'), z'', append(z'', x'')) :|: s251 >= 0, s251 <= x' + 1, s106 >= 0, s106 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 + x' }-> if(1, 2, s107, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s252 + tail(z'), z'', append(z'', 0)) :|: s252 >= 0, s252 <= x' + 1, s107 >= 0, s107 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 2, s108, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s253 + tail(z'), z'', append(z'', x')) :|: s253 >= 0, s253 <= 0 + 1, s108 >= 0, s108 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 2, s109, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s254 + tail(z'), z'', append(z'', 0)) :|: s254 >= 0, s254 <= 0 + 1, s109 >= 0, s109 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 addLists(z, z', z'') -{ 9 + x1 }-> if(1, 2, s94, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s239 + tail(z'), z'', append(z'', x2)) :|: s239 >= 0, s239 <= x1 + 1, s94 >= 0, s94 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 8 + x1 }-> if(1, 2, s95, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s240 + tail(z'), z'', append(z'', 0)) :|: s240 >= 0, s240 <= x1 + 1, s95 >= 0, s95 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 8 }-> if(1, 2, s96, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s241 + tail(z'), z'', append(z'', x1)) :|: s241 >= 0, s241 <= 0 + 1, s96 >= 0, s96 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 2, s97, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s242 + tail(z'), z'', append(z'', 0)) :|: s242 >= 0, s242 <= 0 + 1, s97 >= 0, s97 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 8 + x'' }-> if(1, 2, s98, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s243 + tail(z'), z'', append(z'', x1)) :|: s243 >= 0, s243 <= x'' + 1, s98 >= 0, s98 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 + x'' }-> if(1, 2, s99, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s244 + tail(z'), z'', append(z'', 0)) :|: s244 >= 0, s244 <= x'' + 1, s99 >= 0, s99 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 9 + x2 }-> if(1, 1, s126, tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + s271 + tail(z'), z'', append(z'', x3)) :|: s271 >= 0, s271 <= x2 + 1, s126 >= 0, s126 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0, z' = 1 + x3 + xs4, xs4 >= 0, x3 >= 0 addLists(z, z', z'') -{ 8 + x2 }-> if(1, 1, s127, tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + s272 + tail(z'), z'', append(z'', 0)) :|: s272 >= 0, s272 <= x2 + 1, s127 >= 0, s127 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 8 }-> if(1, 1, s128, tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + s273 + tail(z'), z'', append(z'', x2)) :|: s273 >= 0, s273 <= 0 + 1, s128 >= 0, s128 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 1, s129, tail(z), tail(z'), 1 + p(x1) + tail(z), 1 + s274 + tail(z'), z'', append(z'', 0)) :|: s274 >= 0, s274 <= 0 + 1, s129 >= 0, s129 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 8 + x1 }-> if(1, 1, s130, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s275 + tail(z'), z'', append(z'', x2)) :|: s275 >= 0, s275 <= x1 + 1, s130 >= 0, s130 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 7 + x1 }-> if(1, 1, s131, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s276 + tail(z'), z'', append(z'', 0)) :|: s276 >= 0, s276 <= x1 + 1, s131 >= 0, s131 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 1, s132, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s277 + tail(z'), z'', append(z'', x1)) :|: s277 >= 0, s277 <= 0 + 1, s132 >= 0, s132 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, s133, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s278 + tail(z'), z'', append(z'', 0)) :|: s278 >= 0, s278 <= 0 + 1, s133 >= 0, s133 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 8 + x1 }-> if(1, 1, s134, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s279 + tail(z'), z'', append(z'', x2)) :|: s279 >= 0, s279 <= x1 + 1, s134 >= 0, s134 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 7 + x1 }-> if(1, 1, s135, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s280 + tail(z'), z'', append(z'', 0)) :|: s280 >= 0, s280 <= x1 + 1, s135 >= 0, s135 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 1, s136, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s281 + tail(z'), z'', append(z'', x1)) :|: s281 >= 0, s281 <= 0 + 1, s136 >= 0, s136 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, s137, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s282 + tail(z'), z'', append(z'', 0)) :|: s282 >= 0, s282 <= 0 + 1, s137 >= 0, s137 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 + x'' }-> if(1, 1, s138, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s283 + tail(z'), z'', append(z'', x1)) :|: s283 >= 0, s283 <= x'' + 1, s138 >= 0, s138 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 + x'' }-> if(1, 1, s139, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s284 + tail(z'), z'', append(z'', 0)) :|: s284 >= 0, s284 <= x'' + 1, s139 >= 0, s139 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 1, s140, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s285 + tail(z'), z'', append(z'', x'')) :|: s285 >= 0, s285 <= 0 + 1, s140 >= 0, s140 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 1, s141, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s286 + tail(z'), z'', append(z'', 0)) :|: s286 >= 0, s286 <= 0 + 1, s141 >= 0, s141 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 8 + x1 }-> if(1, 0, s110, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s255 + tail(z'), z'', append(z'', x2)) :|: s255 >= 0, s255 <= x1 + 1, s110 >= 0, s110 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 7 + x1 }-> if(1, 0, s111, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s256 + tail(z'), z'', append(z'', 0)) :|: s256 >= 0, s256 <= x1 + 1, s111 >= 0, s111 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 }-> if(1, 0, s112, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s257 + tail(z'), z'', append(z'', x1)) :|: s257 >= 0, s257 <= 0 + 1, s112 >= 0, s112 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 0, s113, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s258 + tail(z'), z'', append(z'', 0)) :|: s258 >= 0, s258 <= 0 + 1, s113 >= 0, s113 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 + x'' }-> if(1, 0, s114, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s259 + tail(z'), z'', append(z'', x1)) :|: s259 >= 0, s259 <= x'' + 1, s114 >= 0, s114 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 + x'' }-> if(1, 0, s115, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s260 + tail(z'), z'', append(z'', 0)) :|: s260 >= 0, s260 <= x'' + 1, s115 >= 0, s115 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 0, s116, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s261 + tail(z'), z'', append(z'', x'')) :|: s261 >= 0, s261 <= 0 + 1, s116 >= 0, s116 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, s117, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s262 + tail(z'), z'', append(z'', 0)) :|: s262 >= 0, s262 <= 0 + 1, s117 >= 0, s117 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 7 + x'' }-> if(1, 0, s118, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s263 + tail(z'), z'', append(z'', x1)) :|: s263 >= 0, s263 <= x'' + 1, s118 >= 0, s118 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 + x'' }-> if(1, 0, s119, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s264 + tail(z'), z'', append(z'', 0)) :|: s264 >= 0, s264 <= x'' + 1, s119 >= 0, s119 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(1, 0, s120, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s265 + tail(z'), z'', append(z'', x'')) :|: s265 >= 0, s265 <= 0 + 1, s120 >= 0, s120 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, s121, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s266 + tail(z'), z'', append(z'', 0)) :|: s266 >= 0, s266 <= 0 + 1, s121 >= 0, s121 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 + x' }-> if(1, 0, s122, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s267 + tail(z'), z'', append(z'', x'')) :|: s267 >= 0, s267 <= x' + 1, s122 >= 0, s122 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 + x' }-> if(1, 0, s123, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s268 + tail(z'), z'', append(z'', 0)) :|: s268 >= 0, s268 <= x' + 1, s123 >= 0, s123 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(1, 0, s124, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s269 + tail(z'), z'', append(z'', x')) :|: s269 >= 0, s269 <= 0 + 1, s124 >= 0, s124 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(1, 0, s125, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s270 + tail(z'), z'', append(z'', 0)) :|: s270 >= 0, s270 <= 0 + 1, s125 >= 0, s125 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 8 + x'' }-> if(0, 2, s46, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s191 + tail(z'), z'', append(z'', x1)) :|: s191 >= 0, s191 <= x'' + 1, s46 >= 0, s46 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 + x'' }-> if(0, 2, s47, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s192 + tail(z'), z'', append(z'', 0)) :|: s192 >= 0, s192 <= x'' + 1, s47 >= 0, s47 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 }-> if(0, 2, s48, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s193 + tail(z'), z'', append(z'', x'')) :|: s193 >= 0, s193 <= 0 + 1, s48 >= 0, s48 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 2, s49, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s194 + tail(z'), z'', append(z'', 0)) :|: s194 >= 0, s194 <= 0 + 1, s49 >= 0, s49 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 7 + x' }-> if(0, 2, s50, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s195 + tail(z'), z'', append(z'', x'')) :|: s195 >= 0, s195 <= x' + 1, s50 >= 0, s50 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 + x' }-> if(0, 2, s51, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s196 + tail(z'), z'', append(z'', 0)) :|: s196 >= 0, s196 <= x' + 1, s51 >= 0, s51 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 2, s52, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s197 + tail(z'), z'', append(z'', x')) :|: s197 >= 0, s197 <= 0 + 1, s52 >= 0, s52 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, s53, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s198 + tail(z'), z'', append(z'', 0)) :|: s198 >= 0, s198 <= 0 + 1, s53 >= 0, s53 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 7 + x' }-> if(0, 2, s54, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s199 + tail(z'), z'', append(z'', x'')) :|: s199 >= 0, s199 <= x' + 1, s54 >= 0, s54 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 + x' }-> if(0, 2, s55, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s200 + tail(z'), z'', append(z'', 0)) :|: s200 >= 0, s200 <= x' + 1, s55 >= 0, s55 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 2, s56, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s201 + tail(z'), z'', append(z'', x')) :|: s201 >= 0, s201 <= 0 + 1, s56 >= 0, s56 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, s57, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s202 + tail(z'), z'', append(z'', 0)) :|: s202 >= 0, s202 <= 0 + 1, s57 >= 0, s57 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 + x }-> if(0, 2, s58, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s203 + tail(z'), z'', append(z'', x')) :|: s203 >= 0, s203 <= x + 1, s58 >= 0, s58 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 + x }-> if(0, 2, s59, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s204 + tail(z'), z'', append(z'', 0)) :|: s204 >= 0, s204 <= x + 1, s59 >= 0, s59 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 2, s60, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s205 + tail(z'), z'', append(z'', x)) :|: s205 >= 0, s205 <= 0 + 1, s60 >= 0, s60 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 2, s61, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s206 + tail(z'), z'', append(z'', 0)) :|: s206 >= 0, s206 <= 0 + 1, s61 >= 0, s61 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 addLists(z, z', z'') -{ 8 + x1 }-> if(0, 1, s78, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s223 + tail(z'), z'', append(z'', x2)) :|: s223 >= 0, s223 <= x1 + 1, s78 >= 0, s78 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 7 + x1 }-> if(0, 1, s79, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s224 + tail(z'), z'', append(z'', 0)) :|: s224 >= 0, s224 <= x1 + 1, s79 >= 0, s79 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 7 }-> if(0, 1, s80, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s225 + tail(z'), z'', append(z'', x1)) :|: s225 >= 0, s225 <= 0 + 1, s80 >= 0, s80 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 1, s81, tail(z), tail(z'), 1 + p(x'') + tail(z), 1 + s226 + tail(z'), z'', append(z'', 0)) :|: s226 >= 0, s226 <= 0 + 1, s81 >= 0, s81 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 7 + x'' }-> if(0, 1, s82, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s227 + tail(z'), z'', append(z'', x1)) :|: s227 >= 0, s227 <= x'' + 1, s82 >= 0, s82 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 + x'' }-> if(0, 1, s83, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s228 + tail(z'), z'', append(z'', 0)) :|: s228 >= 0, s228 <= x'' + 1, s83 >= 0, s83 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 1, s84, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s229 + tail(z'), z'', append(z'', x'')) :|: s229 >= 0, s229 <= 0 + 1, s84 >= 0, s84 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, s85, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s230 + tail(z'), z'', append(z'', 0)) :|: s230 >= 0, s230 <= 0 + 1, s85 >= 0, s85 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 7 + x'' }-> if(0, 1, s86, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s231 + tail(z'), z'', append(z'', x1)) :|: s231 >= 0, s231 <= x'' + 1, s86 >= 0, s86 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 + x'' }-> if(0, 1, s87, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s232 + tail(z'), z'', append(z'', 0)) :|: s232 >= 0, s232 <= x'' + 1, s87 >= 0, s87 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 1, s88, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s233 + tail(z'), z'', append(z'', x'')) :|: s233 >= 0, s233 <= 0 + 1, s88 >= 0, s88 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, s89, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s234 + tail(z'), z'', append(z'', 0)) :|: s234 >= 0, s234 <= 0 + 1, s89 >= 0, s89 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 + x' }-> if(0, 1, s90, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s235 + tail(z'), z'', append(z'', x'')) :|: s235 >= 0, s235 <= x' + 1, s90 >= 0, s90 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 + x' }-> if(0, 1, s91, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s236 + tail(z'), z'', append(z'', 0)) :|: s236 >= 0, s236 <= x' + 1, s91 >= 0, s91 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 1, s92, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s237 + tail(z'), z'', append(z'', x')) :|: s237 >= 0, s237 <= 0 + 1, s92 >= 0, s92 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 1, s93, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s238 + tail(z'), z'', append(z'', 0)) :|: s238 >= 0, s238 <= 0 + 1, s93 >= 0, s93 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 7 + x'' }-> if(0, 0, s62, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s207 + tail(z'), z'', append(z'', x1)) :|: s207 >= 0, s207 <= x'' + 1, s62 >= 0, s62 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 6 + x'' }-> if(0, 0, s63, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s208 + tail(z'), z'', append(z'', 0)) :|: s208 >= 0, s208 <= x'' + 1, s63 >= 0, s63 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 6 }-> if(0, 0, s64, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s209 + tail(z'), z'', append(z'', x'')) :|: s209 >= 0, s209 <= 0 + 1, s64 >= 0, s64 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 0, s65, tail(z), tail(z'), 1 + p(x') + tail(z), 1 + s210 + tail(z'), z'', append(z'', 0)) :|: s210 >= 0, s210 <= 0 + 1, s65 >= 0, s65 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 6 + x' }-> if(0, 0, s66, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s211 + tail(z'), z'', append(z'', x'')) :|: s211 >= 0, s211 <= x' + 1, s66 >= 0, s66 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 + x' }-> if(0, 0, s67, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s212 + tail(z'), z'', append(z'', 0)) :|: s212 >= 0, s212 <= x' + 1, s67 >= 0, s67 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 0, s68, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s213 + tail(z'), z'', append(z'', x')) :|: s213 >= 0, s213 <= 0 + 1, s68 >= 0, s68 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, s69, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s214 + tail(z'), z'', append(z'', 0)) :|: s214 >= 0, s214 <= 0 + 1, s69 >= 0, s69 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 6 + x' }-> if(0, 0, s70, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s215 + tail(z'), z'', append(z'', x'')) :|: s215 >= 0, s215 <= x' + 1, s70 >= 0, s70 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 5 + x' }-> if(0, 0, s71, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s216 + tail(z'), z'', append(z'', 0)) :|: s216 >= 0, s216 <= x' + 1, s71 >= 0, s71 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 5 }-> if(0, 0, s72, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s217 + tail(z'), z'', append(z'', x')) :|: s217 >= 0, s217 <= 0 + 1, s72 >= 0, s72 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, s73, tail(z), tail(z'), 1 + p(x) + tail(z), 1 + s218 + tail(z'), z'', append(z'', 0)) :|: s218 >= 0, s218 <= 0 + 1, s73 >= 0, s73 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 5 + x }-> if(0, 0, s74, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s219 + tail(z'), z'', append(z'', x')) :|: s219 >= 0, s219 <= x + 1, s74 >= 0, s74 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 4 + x }-> if(0, 0, s75, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s220 + tail(z'), z'', append(z'', 0)) :|: s220 >= 0, s220 <= x + 1, s75 >= 0, s75 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 4 }-> if(0, 0, s76, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s221 + tail(z'), z'', append(z'', x)) :|: s221 >= 0, s221 <= 0 + 1, s76 >= 0, s76 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 3 }-> if(0, 0, s77, tail(z), tail(z'), 1 + p(0) + tail(z), 1 + s222 + tail(z'), z'', append(z'', 0)) :|: s222 >= 0, s222 <= 0 + 1, s77 >= 0, s77 <= 2, z >= 0, z' >= 0, z'' >= 0 append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 append(z, z') -{ 1 }-> 1 + y + append(ys, z') :|: ys >= 0, y >= 0, z' >= 0, z = 1 + y + ys append(z, z') -{ 1 }-> 1 + z' + 1 :|: z = 1, z' >= 0 head(z) -{ 1 }-> x :|: z = 1 + x + xs, xs >= 0, x >= 0 head(z) -{ 0 }-> 0 :|: z >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> z5 :|: z1 >= 0, z' = 2, z5 >= 0, z6 >= 0, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z1, z2, z6) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 2, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z3, z4, z5) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 1, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z5 >= 0, z6 >= 0, z' = 1, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z' = 2, z = 1, z5 >= 0, z6 >= 0, z4 >= 0, z'' >= 0, z3 >= 0, z2 >= 0 inc(z) -{ 1 + z }-> 1 + s142 :|: s142 >= 0, s142 <= z - 1 + 1, z - 1 >= 0 inc(z) -{ 1 }-> 1 + 0 :|: z = 0 isEmpty(z) -{ 1 }-> 2 :|: z = 1 isEmpty(z) -{ 1 }-> 1 :|: z = 1 + x + xs, xs >= 0, x >= 0 isEmpty(z) -{ 0 }-> 0 :|: z >= 0 isZero(z) -{ 1 }-> 2 :|: z = 0 isZero(z) -{ 1 }-> 1 :|: z - 1 >= 0 p(z) -{ 1 }-> 0 :|: z = 1 + 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 1 }-> 1 + p(1 + (z - 2)) :|: z - 2 >= 0 tail(z) -{ 1 }-> xs :|: z = 1 + x + xs, xs >= 0, x >= 0 tail(z) -{ 1 }-> 1 :|: z = 1 tail(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {append}, {head}, {p}, {addLists,if}, {addList} Previous analysis results are: isEmpty: runtime: O(1) [1], size: O(1) [2] isZero: runtime: O(1) [1], size: O(1) [2] inc: runtime: O(n^1) [1 + z], size: O(n^1) [1 + z] tail: runtime: O(1) [1], size: O(n^1) [z] ---------------------------------------- (45) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (46) Obligation: Complexity RNTS consisting of the following rules: addList(z, z') -{ 1 }-> addLists(z, z', 1) :|: z >= 0, z' >= 0 addLists(z, z', z'') -{ 13 + x'' }-> if(2, 2, s, s287, s288, 1 + p(x') + s289, 1 + s143 + s290, z'', append(z'', x1)) :|: s287 >= 0, s287 <= z, s288 >= 0, s288 <= z', s289 >= 0, s289 <= z, s290 >= 0, s290 <= z', s143 >= 0, s143 <= x'' + 1, s >= 0, s <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' }-> if(2, 2, s', s291, s292, 1 + p(x') + s293, 1 + s144 + s294, z'', append(z'', 0)) :|: s291 >= 0, s291 <= z, s292 >= 0, s292 <= z', s293 >= 0, s293 <= z, s294 >= 0, s294 <= z', s144 >= 0, s144 <= x'' + 1, s' >= 0, s' <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 }-> if(2, 2, s'', s295, s296, 1 + p(x') + s297, 1 + s145 + s298, z'', append(z'', x'')) :|: s295 >= 0, s295 <= z, s296 >= 0, s296 <= z', s297 >= 0, s297 <= z, s298 >= 0, s298 <= z', s145 >= 0, s145 <= 0 + 1, s'' >= 0, s'' <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 }-> if(2, 2, s1, s299, s300, 1 + p(x') + s301, 1 + s146 + s302, z'', append(z'', 0)) :|: s299 >= 0, s299 <= z, s300 >= 0, s300 <= z', s301 >= 0, s301 <= z, s302 >= 0, s302 <= z', s146 >= 0, s146 <= 0 + 1, s1 >= 0, s1 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x }-> if(2, 2, s10, s335, s336, 1 + p(0) + s337, 1 + s155 + s338, z'', append(z'', x')) :|: s335 >= 0, s335 <= z, s336 >= 0, s336 <= z', s337 >= 0, s337 <= z, s338 >= 0, s338 <= z', s155 >= 0, s155 <= x + 1, s10 >= 0, s10 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + x }-> if(2, 2, s11, s339, s340, 1 + p(0) + s341, 1 + s156 + s342, z'', append(z'', 0)) :|: s339 >= 0, s339 <= z, s340 >= 0, s340 <= z', s341 >= 0, s341 <= z, s342 >= 0, s342 <= z', s156 >= 0, s156 <= x + 1, s11 >= 0, s11 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 10 }-> if(2, 2, s12, s343, s344, 1 + p(0) + s345, 1 + s157 + s346, z'', append(z'', x)) :|: s343 >= 0, s343 <= z, s344 >= 0, s344 <= z', s345 >= 0, s345 <= z, s346 >= 0, s346 <= z', s157 >= 0, s157 <= 0 + 1, s12 >= 0, s12 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 9 }-> if(2, 2, s13, s347, s348, 1 + p(0) + s349, 1 + s158 + s350, z'', append(z'', 0)) :|: s347 >= 0, s347 <= z, s348 >= 0, s348 <= z', s349 >= 0, s349 <= z, s350 >= 0, s350 <= z', s158 >= 0, s158 <= 0 + 1, s13 >= 0, s13 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 addLists(z, z', z'') -{ 12 + x' }-> if(2, 2, s2, s303, s304, 1 + p(0) + s305, 1 + s147 + s306, z'', append(z'', x'')) :|: s303 >= 0, s303 <= z, s304 >= 0, s304 <= z', s305 >= 0, s305 <= z, s306 >= 0, s306 <= z', s147 >= 0, s147 <= x' + 1, s2 >= 0, s2 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' }-> if(2, 2, s3, s307, s308, 1 + p(0) + s309, 1 + s148 + s310, z'', append(z'', 0)) :|: s307 >= 0, s307 <= z, s308 >= 0, s308 <= z', s309 >= 0, s309 <= z, s310 >= 0, s310 <= z', s148 >= 0, s148 <= x' + 1, s3 >= 0, s3 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 }-> if(2, 2, s4, s311, s312, 1 + p(0) + s313, 1 + s149 + s314, z'', append(z'', x')) :|: s311 >= 0, s311 <= z, s312 >= 0, s312 <= z', s313 >= 0, s313 <= z, s314 >= 0, s314 <= z', s149 >= 0, s149 <= 0 + 1, s4 >= 0, s4 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 }-> if(2, 2, s5, s315, s316, 1 + p(0) + s317, 1 + s150 + s318, z'', append(z'', 0)) :|: s315 >= 0, s315 <= z, s316 >= 0, s316 <= z', s317 >= 0, s317 <= z, s318 >= 0, s318 <= z', s150 >= 0, s150 <= 0 + 1, s5 >= 0, s5 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 12 + x' }-> if(2, 2, s6, s319, s320, 1 + p(x) + s321, 1 + s151 + s322, z'', append(z'', x'')) :|: s319 >= 0, s319 <= z, s320 >= 0, s320 <= z', s321 >= 0, s321 <= z, s322 >= 0, s322 <= z', s151 >= 0, s151 <= x' + 1, s6 >= 0, s6 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' }-> if(2, 2, s7, s323, s324, 1 + p(x) + s325, 1 + s152 + s326, z'', append(z'', 0)) :|: s323 >= 0, s323 <= z, s324 >= 0, s324 <= z', s325 >= 0, s325 <= z, s326 >= 0, s326 <= z', s152 >= 0, s152 <= x' + 1, s7 >= 0, s7 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 }-> if(2, 2, s8, s327, s328, 1 + p(x) + s329, 1 + s153 + s330, z'', append(z'', x')) :|: s327 >= 0, s327 <= z, s328 >= 0, s328 <= z', s329 >= 0, s329 <= z, s330 >= 0, s330 <= z', s153 >= 0, s153 <= 0 + 1, s8 >= 0, s8 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 }-> if(2, 2, s9, s331, s332, 1 + p(x) + s333, 1 + s154 + s334, z'', append(z'', 0)) :|: s331 >= 0, s331 <= z, s332 >= 0, s332 <= z', s333 >= 0, s333 <= z, s334 >= 0, s334 <= z', s154 >= 0, s154 <= 0 + 1, s9 >= 0, s9 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 13 + x1 }-> if(2, 1, s30, s415, s416, 1 + p(x'') + s417, 1 + s175 + s418, z'', append(z'', x2)) :|: s415 >= 0, s415 <= z, s416 >= 0, s416 <= z', s417 >= 0, s417 <= z, s418 >= 0, s418 <= z', s175 >= 0, s175 <= x1 + 1, s30 >= 0, s30 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 + x1 }-> if(2, 1, s31, s419, s420, 1 + p(x'') + s421, 1 + s176 + s422, z'', append(z'', 0)) :|: s419 >= 0, s419 <= z, s420 >= 0, s420 <= z', s421 >= 0, s421 <= z, s422 >= 0, s422 <= z', s176 >= 0, s176 <= x1 + 1, s31 >= 0, s31 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 }-> if(2, 1, s32, s423, s424, 1 + p(x'') + s425, 1 + s177 + s426, z'', append(z'', x1)) :|: s423 >= 0, s423 <= z, s424 >= 0, s424 <= z', s425 >= 0, s425 <= z, s426 >= 0, s426 <= z', s177 >= 0, s177 <= 0 + 1, s32 >= 0, s32 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 }-> if(2, 1, s33, s427, s428, 1 + p(x'') + s429, 1 + s178 + s430, z'', append(z'', 0)) :|: s427 >= 0, s427 <= z, s428 >= 0, s428 <= z', s429 >= 0, s429 <= z, s430 >= 0, s430 <= z', s178 >= 0, s178 <= 0 + 1, s33 >= 0, s33 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x'' }-> if(2, 1, s34, s431, s432, 1 + p(0) + s433, 1 + s179 + s434, z'', append(z'', x1)) :|: s431 >= 0, s431 <= z, s432 >= 0, s432 <= z', s433 >= 0, s433 <= z, s434 >= 0, s434 <= z', s179 >= 0, s179 <= x'' + 1, s34 >= 0, s34 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' }-> if(2, 1, s35, s435, s436, 1 + p(0) + s437, 1 + s180 + s438, z'', append(z'', 0)) :|: s435 >= 0, s435 <= z, s436 >= 0, s436 <= z', s437 >= 0, s437 <= z, s438 >= 0, s438 <= z', s180 >= 0, s180 <= x'' + 1, s35 >= 0, s35 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 }-> if(2, 1, s36, s439, s440, 1 + p(0) + s441, 1 + s181 + s442, z'', append(z'', x'')) :|: s439 >= 0, s439 <= z, s440 >= 0, s440 <= z', s441 >= 0, s441 <= z, s442 >= 0, s442 <= z', s181 >= 0, s181 <= 0 + 1, s36 >= 0, s36 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 }-> if(2, 1, s37, s443, s444, 1 + p(0) + s445, 1 + s182 + s446, z'', append(z'', 0)) :|: s443 >= 0, s443 <= z, s444 >= 0, s444 <= z', s445 >= 0, s445 <= z, s446 >= 0, s446 <= z', s182 >= 0, s182 <= 0 + 1, s37 >= 0, s37 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x'' }-> if(2, 1, s38, s447, s448, 1 + p(x') + s449, 1 + s183 + s450, z'', append(z'', x1)) :|: s447 >= 0, s447 <= z, s448 >= 0, s448 <= z', s449 >= 0, s449 <= z, s450 >= 0, s450 <= z', s183 >= 0, s183 <= x'' + 1, s38 >= 0, s38 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' }-> if(2, 1, s39, s451, s452, 1 + p(x') + s453, 1 + s184 + s454, z'', append(z'', 0)) :|: s451 >= 0, s451 <= z, s452 >= 0, s452 <= z', s453 >= 0, s453 <= z, s454 >= 0, s454 <= z', s184 >= 0, s184 <= x'' + 1, s39 >= 0, s39 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 }-> if(2, 1, s40, s455, s456, 1 + p(x') + s457, 1 + s185 + s458, z'', append(z'', x'')) :|: s455 >= 0, s455 <= z, s456 >= 0, s456 <= z', s457 >= 0, s457 <= z, s458 >= 0, s458 <= z', s185 >= 0, s185 <= 0 + 1, s40 >= 0, s40 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 }-> if(2, 1, s41, s459, s460, 1 + p(x') + s461, 1 + s186 + s462, z'', append(z'', 0)) :|: s459 >= 0, s459 <= z, s460 >= 0, s460 <= z', s461 >= 0, s461 <= z, s462 >= 0, s462 <= z', s186 >= 0, s186 <= 0 + 1, s41 >= 0, s41 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x' }-> if(2, 1, s42, s463, s464, 1 + p(0) + s465, 1 + s187 + s466, z'', append(z'', x'')) :|: s463 >= 0, s463 <= z, s464 >= 0, s464 <= z', s465 >= 0, s465 <= z, s466 >= 0, s466 <= z', s187 >= 0, s187 <= x' + 1, s42 >= 0, s42 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' }-> if(2, 1, s43, s467, s468, 1 + p(0) + s469, 1 + s188 + s470, z'', append(z'', 0)) :|: s467 >= 0, s467 <= z, s468 >= 0, s468 <= z', s469 >= 0, s469 <= z, s470 >= 0, s470 <= z', s188 >= 0, s188 <= x' + 1, s43 >= 0, s43 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 }-> if(2, 1, s44, s471, s472, 1 + p(0) + s473, 1 + s189 + s474, z'', append(z'', x')) :|: s471 >= 0, s471 <= z, s472 >= 0, s472 <= z', s473 >= 0, s473 <= z, s474 >= 0, s474 <= z', s189 >= 0, s189 <= 0 + 1, s44 >= 0, s44 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 }-> if(2, 1, s45, s475, s476, 1 + p(0) + s477, 1 + s190 + s478, z'', append(z'', 0)) :|: s475 >= 0, s475 <= z, s476 >= 0, s476 <= z', s477 >= 0, s477 <= z, s478 >= 0, s478 <= z', s190 >= 0, s190 <= 0 + 1, s45 >= 0, s45 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 12 + x'' }-> if(2, 0, s14, s351, s352, 1 + p(x') + s353, 1 + s159 + s354, z'', append(z'', x1)) :|: s351 >= 0, s351 <= z, s352 >= 0, s352 <= z', s353 >= 0, s353 <= z, s354 >= 0, s354 <= z', s159 >= 0, s159 <= x'' + 1, s14 >= 0, s14 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' }-> if(2, 0, s15, s355, s356, 1 + p(x') + s357, 1 + s160 + s358, z'', append(z'', 0)) :|: s355 >= 0, s355 <= z, s356 >= 0, s356 <= z', s357 >= 0, s357 <= z, s358 >= 0, s358 <= z', s160 >= 0, s160 <= x'' + 1, s15 >= 0, s15 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 }-> if(2, 0, s16, s359, s360, 1 + p(x') + s361, 1 + s161 + s362, z'', append(z'', x'')) :|: s359 >= 0, s359 <= z, s360 >= 0, s360 <= z', s361 >= 0, s361 <= z, s362 >= 0, s362 <= z', s161 >= 0, s161 <= 0 + 1, s16 >= 0, s16 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 }-> if(2, 0, s17, s363, s364, 1 + p(x') + s365, 1 + s162 + s366, z'', append(z'', 0)) :|: s363 >= 0, s363 <= z, s364 >= 0, s364 <= z', s365 >= 0, s365 <= z, s366 >= 0, s366 <= z', s162 >= 0, s162 <= 0 + 1, s17 >= 0, s17 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x' }-> if(2, 0, s18, s367, s368, 1 + p(0) + s369, 1 + s163 + s370, z'', append(z'', x'')) :|: s367 >= 0, s367 <= z, s368 >= 0, s368 <= z', s369 >= 0, s369 <= z, s370 >= 0, s370 <= z', s163 >= 0, s163 <= x' + 1, s18 >= 0, s18 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' }-> if(2, 0, s19, s371, s372, 1 + p(0) + s373, 1 + s164 + s374, z'', append(z'', 0)) :|: s371 >= 0, s371 <= z, s372 >= 0, s372 <= z', s373 >= 0, s373 <= z, s374 >= 0, s374 <= z', s164 >= 0, s164 <= x' + 1, s19 >= 0, s19 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 }-> if(2, 0, s20, s375, s376, 1 + p(0) + s377, 1 + s165 + s378, z'', append(z'', x')) :|: s375 >= 0, s375 <= z, s376 >= 0, s376 <= z', s377 >= 0, s377 <= z, s378 >= 0, s378 <= z', s165 >= 0, s165 <= 0 + 1, s20 >= 0, s20 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 }-> if(2, 0, s21, s379, s380, 1 + p(0) + s381, 1 + s166 + s382, z'', append(z'', 0)) :|: s379 >= 0, s379 <= z, s380 >= 0, s380 <= z', s381 >= 0, s381 <= z, s382 >= 0, s382 <= z', s166 >= 0, s166 <= 0 + 1, s21 >= 0, s21 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 11 + x' }-> if(2, 0, s22, s383, s384, 1 + p(x) + s385, 1 + s167 + s386, z'', append(z'', x'')) :|: s383 >= 0, s383 <= z, s384 >= 0, s384 <= z', s385 >= 0, s385 <= z, s386 >= 0, s386 <= z', s167 >= 0, s167 <= x' + 1, s22 >= 0, s22 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' }-> if(2, 0, s23, s387, s388, 1 + p(x) + s389, 1 + s168 + s390, z'', append(z'', 0)) :|: s387 >= 0, s387 <= z, s388 >= 0, s388 <= z', s389 >= 0, s389 <= z, s390 >= 0, s390 <= z', s168 >= 0, s168 <= x' + 1, s23 >= 0, s23 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 }-> if(2, 0, s24, s391, s392, 1 + p(x) + s393, 1 + s169 + s394, z'', append(z'', x')) :|: s391 >= 0, s391 <= z, s392 >= 0, s392 <= z', s393 >= 0, s393 <= z, s394 >= 0, s394 <= z', s169 >= 0, s169 <= 0 + 1, s24 >= 0, s24 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 }-> if(2, 0, s25, s395, s396, 1 + p(x) + s397, 1 + s170 + s398, z'', append(z'', 0)) :|: s395 >= 0, s395 <= z, s396 >= 0, s396 <= z', s397 >= 0, s397 <= z, s398 >= 0, s398 <= z', s170 >= 0, s170 <= 0 + 1, s25 >= 0, s25 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 10 + x }-> if(2, 0, s26, s399, s400, 1 + p(0) + s401, 1 + s171 + s402, z'', append(z'', x')) :|: s399 >= 0, s399 <= z, s400 >= 0, s400 <= z', s401 >= 0, s401 <= z, s402 >= 0, s402 <= z', s171 >= 0, s171 <= x + 1, s26 >= 0, s26 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 + x }-> if(2, 0, s27, s403, s404, 1 + p(0) + s405, 1 + s172 + s406, z'', append(z'', 0)) :|: s403 >= 0, s403 <= z, s404 >= 0, s404 <= z', s405 >= 0, s405 <= z, s406 >= 0, s406 <= z', s172 >= 0, s172 <= x + 1, s27 >= 0, s27 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 9 }-> if(2, 0, s28, s407, s408, 1 + p(0) + s409, 1 + s173 + s410, z'', append(z'', x)) :|: s407 >= 0, s407 <= z, s408 >= 0, s408 <= z', s409 >= 0, s409 <= z, s410 >= 0, s410 <= z', s173 >= 0, s173 <= 0 + 1, s28 >= 0, s28 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 8 }-> if(2, 0, s29, s411, s412, 1 + p(0) + s413, 1 + s174 + s414, z'', append(z'', 0)) :|: s411 >= 0, s411 <= z, s412 >= 0, s412 <= z', s413 >= 0, s413 <= z, s414 >= 0, s414 <= z', s174 >= 0, s174 <= 0 + 1, s29 >= 0, s29 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 addLists(z, z', z'') -{ 11 }-> if(1, 2, s100, s695, s696, 1 + p(0) + s697, 1 + s245 + s698, z'', append(z'', x'')) :|: s695 >= 0, s695 <= z, s696 >= 0, s696 <= z', s697 >= 0, s697 <= z, s698 >= 0, s698 <= z', s245 >= 0, s245 <= 0 + 1, s100 >= 0, s100 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 }-> if(1, 2, s101, s699, s700, 1 + p(0) + s701, 1 + s246 + s702, z'', append(z'', 0)) :|: s699 >= 0, s699 <= z, s700 >= 0, s700 <= z', s701 >= 0, s701 <= z, s702 >= 0, s702 <= z', s246 >= 0, s246 <= 0 + 1, s101 >= 0, s101 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x'' }-> if(1, 2, s102, s703, s704, 1 + p(x') + s705, 1 + s247 + s706, z'', append(z'', x1)) :|: s703 >= 0, s703 <= z, s704 >= 0, s704 <= z', s705 >= 0, s705 <= z, s706 >= 0, s706 <= z', s247 >= 0, s247 <= x'' + 1, s102 >= 0, s102 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' }-> if(1, 2, s103, s707, s708, 1 + p(x') + s709, 1 + s248 + s710, z'', append(z'', 0)) :|: s707 >= 0, s707 <= z, s708 >= 0, s708 <= z', s709 >= 0, s709 <= z, s710 >= 0, s710 <= z', s248 >= 0, s248 <= x'' + 1, s103 >= 0, s103 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 }-> if(1, 2, s104, s711, s712, 1 + p(x') + s713, 1 + s249 + s714, z'', append(z'', x'')) :|: s711 >= 0, s711 <= z, s712 >= 0, s712 <= z', s713 >= 0, s713 <= z, s714 >= 0, s714 <= z', s249 >= 0, s249 <= 0 + 1, s104 >= 0, s104 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 }-> if(1, 2, s105, s715, s716, 1 + p(x') + s717, 1 + s250 + s718, z'', append(z'', 0)) :|: s715 >= 0, s715 <= z, s716 >= 0, s716 <= z', s717 >= 0, s717 <= z, s718 >= 0, s718 <= z', s250 >= 0, s250 <= 0 + 1, s105 >= 0, s105 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x' }-> if(1, 2, s106, s719, s720, 1 + p(0) + s721, 1 + s251 + s722, z'', append(z'', x'')) :|: s719 >= 0, s719 <= z, s720 >= 0, s720 <= z', s721 >= 0, s721 <= z, s722 >= 0, s722 <= z', s251 >= 0, s251 <= x' + 1, s106 >= 0, s106 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' }-> if(1, 2, s107, s723, s724, 1 + p(0) + s725, 1 + s252 + s726, z'', append(z'', 0)) :|: s723 >= 0, s723 <= z, s724 >= 0, s724 <= z', s725 >= 0, s725 <= z, s726 >= 0, s726 <= z', s252 >= 0, s252 <= x' + 1, s107 >= 0, s107 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 }-> if(1, 2, s108, s727, s728, 1 + p(0) + s729, 1 + s253 + s730, z'', append(z'', x')) :|: s727 >= 0, s727 <= z, s728 >= 0, s728 <= z', s729 >= 0, s729 <= z, s730 >= 0, s730 <= z', s253 >= 0, s253 <= 0 + 1, s108 >= 0, s108 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 }-> if(1, 2, s109, s731, s732, 1 + p(0) + s733, 1 + s254 + s734, z'', append(z'', 0)) :|: s731 >= 0, s731 <= z, s732 >= 0, s732 <= z', s733 >= 0, s733 <= z, s734 >= 0, s734 <= z', s254 >= 0, s254 <= 0 + 1, s109 >= 0, s109 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 addLists(z, z', z'') -{ 13 + x1 }-> if(1, 2, s94, s671, s672, 1 + p(x'') + s673, 1 + s239 + s674, z'', append(z'', x2)) :|: s671 >= 0, s671 <= z, s672 >= 0, s672 <= z', s673 >= 0, s673 <= z, s674 >= 0, s674 <= z', s239 >= 0, s239 <= x1 + 1, s94 >= 0, s94 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 + x1 }-> if(1, 2, s95, s675, s676, 1 + p(x'') + s677, 1 + s240 + s678, z'', append(z'', 0)) :|: s675 >= 0, s675 <= z, s676 >= 0, s676 <= z', s677 >= 0, s677 <= z, s678 >= 0, s678 <= z', s240 >= 0, s240 <= x1 + 1, s95 >= 0, s95 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 }-> if(1, 2, s96, s679, s680, 1 + p(x'') + s681, 1 + s241 + s682, z'', append(z'', x1)) :|: s679 >= 0, s679 <= z, s680 >= 0, s680 <= z', s681 >= 0, s681 <= z, s682 >= 0, s682 <= z', s241 >= 0, s241 <= 0 + 1, s96 >= 0, s96 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 }-> if(1, 2, s97, s683, s684, 1 + p(x'') + s685, 1 + s242 + s686, z'', append(z'', 0)) :|: s683 >= 0, s683 <= z, s684 >= 0, s684 <= z', s685 >= 0, s685 <= z, s686 >= 0, s686 <= z', s242 >= 0, s242 <= 0 + 1, s97 >= 0, s97 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x'' }-> if(1, 2, s98, s687, s688, 1 + p(0) + s689, 1 + s243 + s690, z'', append(z'', x1)) :|: s687 >= 0, s687 <= z, s688 >= 0, s688 <= z', s689 >= 0, s689 <= z, s690 >= 0, s690 <= z', s243 >= 0, s243 <= x'' + 1, s98 >= 0, s98 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' }-> if(1, 2, s99, s691, s692, 1 + p(0) + s693, 1 + s244 + s694, z'', append(z'', 0)) :|: s691 >= 0, s691 <= z, s692 >= 0, s692 <= z', s693 >= 0, s693 <= z, s694 >= 0, s694 <= z', s244 >= 0, s244 <= x'' + 1, s99 >= 0, s99 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + x2 }-> if(1, 1, s126, s799, s800, 1 + p(x1) + s801, 1 + s271 + s802, z'', append(z'', x3)) :|: s799 >= 0, s799 <= z, s800 >= 0, s800 <= z', s801 >= 0, s801 <= z, s802 >= 0, s802 <= z', s271 >= 0, s271 <= x2 + 1, s126 >= 0, s126 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0, z' = 1 + x3 + xs4, xs4 >= 0, x3 >= 0 addLists(z, z', z'') -{ 12 + x2 }-> if(1, 1, s127, s803, s804, 1 + p(x1) + s805, 1 + s272 + s806, z'', append(z'', 0)) :|: s803 >= 0, s803 <= z, s804 >= 0, s804 <= z', s805 >= 0, s805 <= z, s806 >= 0, s806 <= z', s272 >= 0, s272 <= x2 + 1, s127 >= 0, s127 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 }-> if(1, 1, s128, s807, s808, 1 + p(x1) + s809, 1 + s273 + s810, z'', append(z'', x2)) :|: s807 >= 0, s807 <= z, s808 >= 0, s808 <= z', s809 >= 0, s809 <= z, s810 >= 0, s810 <= z', s273 >= 0, s273 <= 0 + 1, s128 >= 0, s128 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 11 }-> if(1, 1, s129, s811, s812, 1 + p(x1) + s813, 1 + s274 + s814, z'', append(z'', 0)) :|: s811 >= 0, s811 <= z, s812 >= 0, s812 <= z', s813 >= 0, s813 <= z, s814 >= 0, s814 <= z', s274 >= 0, s274 <= 0 + 1, s129 >= 0, s129 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x1 }-> if(1, 1, s130, s815, s816, 1 + p(0) + s817, 1 + s275 + s818, z'', append(z'', x2)) :|: s815 >= 0, s815 <= z, s816 >= 0, s816 <= z', s817 >= 0, s817 <= z, s818 >= 0, s818 <= z', s275 >= 0, s275 <= x1 + 1, s130 >= 0, s130 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 11 + x1 }-> if(1, 1, s131, s819, s820, 1 + p(0) + s821, 1 + s276 + s822, z'', append(z'', 0)) :|: s819 >= 0, s819 <= z, s820 >= 0, s820 <= z', s821 >= 0, s821 <= z, s822 >= 0, s822 <= z', s276 >= 0, s276 <= x1 + 1, s131 >= 0, s131 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 }-> if(1, 1, s132, s823, s824, 1 + p(0) + s825, 1 + s277 + s826, z'', append(z'', x1)) :|: s823 >= 0, s823 <= z, s824 >= 0, s824 <= z', s825 >= 0, s825 <= z, s826 >= 0, s826 <= z', s277 >= 0, s277 <= 0 + 1, s132 >= 0, s132 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 10 }-> if(1, 1, s133, s827, s828, 1 + p(0) + s829, 1 + s278 + s830, z'', append(z'', 0)) :|: s827 >= 0, s827 <= z, s828 >= 0, s828 <= z', s829 >= 0, s829 <= z, s830 >= 0, s830 <= z', s278 >= 0, s278 <= 0 + 1, s133 >= 0, s133 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x1 }-> if(1, 1, s134, s831, s832, 1 + p(x'') + s833, 1 + s279 + s834, z'', append(z'', x2)) :|: s831 >= 0, s831 <= z, s832 >= 0, s832 <= z', s833 >= 0, s833 <= z, s834 >= 0, s834 <= z', s279 >= 0, s279 <= x1 + 1, s134 >= 0, s134 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 11 + x1 }-> if(1, 1, s135, s835, s836, 1 + p(x'') + s837, 1 + s280 + s838, z'', append(z'', 0)) :|: s835 >= 0, s835 <= z, s836 >= 0, s836 <= z', s837 >= 0, s837 <= z, s838 >= 0, s838 <= z', s280 >= 0, s280 <= x1 + 1, s135 >= 0, s135 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 }-> if(1, 1, s136, s839, s840, 1 + p(x'') + s841, 1 + s281 + s842, z'', append(z'', x1)) :|: s839 >= 0, s839 <= z, s840 >= 0, s840 <= z', s841 >= 0, s841 <= z, s842 >= 0, s842 <= z', s281 >= 0, s281 <= 0 + 1, s136 >= 0, s136 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 10 }-> if(1, 1, s137, s843, s844, 1 + p(x'') + s845, 1 + s282 + s846, z'', append(z'', 0)) :|: s843 >= 0, s843 <= z, s844 >= 0, s844 <= z', s845 >= 0, s845 <= z, s846 >= 0, s846 <= z', s282 >= 0, s282 <= 0 + 1, s137 >= 0, s137 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x'' }-> if(1, 1, s138, s847, s848, 1 + p(0) + s849, 1 + s283 + s850, z'', append(z'', x1)) :|: s847 >= 0, s847 <= z, s848 >= 0, s848 <= z', s849 >= 0, s849 <= z, s850 >= 0, s850 <= z', s283 >= 0, s283 <= x'' + 1, s138 >= 0, s138 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 10 + x'' }-> if(1, 1, s139, s851, s852, 1 + p(0) + s853, 1 + s284 + s854, z'', append(z'', 0)) :|: s851 >= 0, s851 <= z, s852 >= 0, s852 <= z', s853 >= 0, s853 <= z, s854 >= 0, s854 <= z', s284 >= 0, s284 <= x'' + 1, s139 >= 0, s139 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 }-> if(1, 1, s140, s855, s856, 1 + p(0) + s857, 1 + s285 + s858, z'', append(z'', x'')) :|: s855 >= 0, s855 <= z, s856 >= 0, s856 <= z', s857 >= 0, s857 <= z, s858 >= 0, s858 <= z', s285 >= 0, s285 <= 0 + 1, s140 >= 0, s140 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 9 }-> if(1, 1, s141, s859, s860, 1 + p(0) + s861, 1 + s286 + s862, z'', append(z'', 0)) :|: s859 >= 0, s859 <= z, s860 >= 0, s860 <= z', s861 >= 0, s861 <= z, s862 >= 0, s862 <= z', s286 >= 0, s286 <= 0 + 1, s141 >= 0, s141 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x1 }-> if(1, 0, s110, s735, s736, 1 + p(x'') + s737, 1 + s255 + s738, z'', append(z'', x2)) :|: s735 >= 0, s735 <= z, s736 >= 0, s736 <= z', s737 >= 0, s737 <= z, s738 >= 0, s738 <= z', s255 >= 0, s255 <= x1 + 1, s110 >= 0, s110 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 11 + x1 }-> if(1, 0, s111, s739, s740, 1 + p(x'') + s741, 1 + s256 + s742, z'', append(z'', 0)) :|: s739 >= 0, s739 <= z, s740 >= 0, s740 <= z', s741 >= 0, s741 <= z, s742 >= 0, s742 <= z', s256 >= 0, s256 <= x1 + 1, s111 >= 0, s111 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 }-> if(1, 0, s112, s743, s744, 1 + p(x'') + s745, 1 + s257 + s746, z'', append(z'', x1)) :|: s743 >= 0, s743 <= z, s744 >= 0, s744 <= z', s745 >= 0, s745 <= z, s746 >= 0, s746 <= z', s257 >= 0, s257 <= 0 + 1, s112 >= 0, s112 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 10 }-> if(1, 0, s113, s747, s748, 1 + p(x'') + s749, 1 + s258 + s750, z'', append(z'', 0)) :|: s747 >= 0, s747 <= z, s748 >= 0, s748 <= z', s749 >= 0, s749 <= z, s750 >= 0, s750 <= z', s258 >= 0, s258 <= 0 + 1, s113 >= 0, s113 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x'' }-> if(1, 0, s114, s751, s752, 1 + p(0) + s753, 1 + s259 + s754, z'', append(z'', x1)) :|: s751 >= 0, s751 <= z, s752 >= 0, s752 <= z', s753 >= 0, s753 <= z, s754 >= 0, s754 <= z', s259 >= 0, s259 <= x'' + 1, s114 >= 0, s114 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 10 + x'' }-> if(1, 0, s115, s755, s756, 1 + p(0) + s757, 1 + s260 + s758, z'', append(z'', 0)) :|: s755 >= 0, s755 <= z, s756 >= 0, s756 <= z', s757 >= 0, s757 <= z, s758 >= 0, s758 <= z', s260 >= 0, s260 <= x'' + 1, s115 >= 0, s115 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 }-> if(1, 0, s116, s759, s760, 1 + p(0) + s761, 1 + s261 + s762, z'', append(z'', x'')) :|: s759 >= 0, s759 <= z, s760 >= 0, s760 <= z', s761 >= 0, s761 <= z, s762 >= 0, s762 <= z', s261 >= 0, s261 <= 0 + 1, s116 >= 0, s116 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 9 }-> if(1, 0, s117, s763, s764, 1 + p(0) + s765, 1 + s262 + s766, z'', append(z'', 0)) :|: s763 >= 0, s763 <= z, s764 >= 0, s764 <= z', s765 >= 0, s765 <= z, s766 >= 0, s766 <= z', s262 >= 0, s262 <= 0 + 1, s117 >= 0, s117 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x'' }-> if(1, 0, s118, s767, s768, 1 + p(x') + s769, 1 + s263 + s770, z'', append(z'', x1)) :|: s767 >= 0, s767 <= z, s768 >= 0, s768 <= z', s769 >= 0, s769 <= z, s770 >= 0, s770 <= z', s263 >= 0, s263 <= x'' + 1, s118 >= 0, s118 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 10 + x'' }-> if(1, 0, s119, s771, s772, 1 + p(x') + s773, 1 + s264 + s774, z'', append(z'', 0)) :|: s771 >= 0, s771 <= z, s772 >= 0, s772 <= z', s773 >= 0, s773 <= z, s774 >= 0, s774 <= z', s264 >= 0, s264 <= x'' + 1, s119 >= 0, s119 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 }-> if(1, 0, s120, s775, s776, 1 + p(x') + s777, 1 + s265 + s778, z'', append(z'', x'')) :|: s775 >= 0, s775 <= z, s776 >= 0, s776 <= z', s777 >= 0, s777 <= z, s778 >= 0, s778 <= z', s265 >= 0, s265 <= 0 + 1, s120 >= 0, s120 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 9 }-> if(1, 0, s121, s779, s780, 1 + p(x') + s781, 1 + s266 + s782, z'', append(z'', 0)) :|: s779 >= 0, s779 <= z, s780 >= 0, s780 <= z', s781 >= 0, s781 <= z, s782 >= 0, s782 <= z', s266 >= 0, s266 <= 0 + 1, s121 >= 0, s121 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + x' }-> if(1, 0, s122, s783, s784, 1 + p(0) + s785, 1 + s267 + s786, z'', append(z'', x'')) :|: s783 >= 0, s783 <= z, s784 >= 0, s784 <= z', s785 >= 0, s785 <= z, s786 >= 0, s786 <= z', s267 >= 0, s267 <= x' + 1, s122 >= 0, s122 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 9 + x' }-> if(1, 0, s123, s787, s788, 1 + p(0) + s789, 1 + s268 + s790, z'', append(z'', 0)) :|: s787 >= 0, s787 <= z, s788 >= 0, s788 <= z', s789 >= 0, s789 <= z, s790 >= 0, s790 <= z', s268 >= 0, s268 <= x' + 1, s123 >= 0, s123 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 }-> if(1, 0, s124, s791, s792, 1 + p(0) + s793, 1 + s269 + s794, z'', append(z'', x')) :|: s791 >= 0, s791 <= z, s792 >= 0, s792 <= z', s793 >= 0, s793 <= z, s794 >= 0, s794 <= z', s269 >= 0, s269 <= 0 + 1, s124 >= 0, s124 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 8 }-> if(1, 0, s125, s795, s796, 1 + p(0) + s797, 1 + s270 + s798, z'', append(z'', 0)) :|: s795 >= 0, s795 <= z, s796 >= 0, s796 <= z', s797 >= 0, s797 <= z, s798 >= 0, s798 <= z', s270 >= 0, s270 <= 0 + 1, s125 >= 0, s125 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 12 + x'' }-> if(0, 2, s46, s479, s480, 1 + p(x') + s481, 1 + s191 + s482, z'', append(z'', x1)) :|: s479 >= 0, s479 <= z, s480 >= 0, s480 <= z', s481 >= 0, s481 <= z, s482 >= 0, s482 <= z', s191 >= 0, s191 <= x'' + 1, s46 >= 0, s46 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' }-> if(0, 2, s47, s483, s484, 1 + p(x') + s485, 1 + s192 + s486, z'', append(z'', 0)) :|: s483 >= 0, s483 <= z, s484 >= 0, s484 <= z', s485 >= 0, s485 <= z, s486 >= 0, s486 <= z', s192 >= 0, s192 <= x'' + 1, s47 >= 0, s47 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 }-> if(0, 2, s48, s487, s488, 1 + p(x') + s489, 1 + s193 + s490, z'', append(z'', x'')) :|: s487 >= 0, s487 <= z, s488 >= 0, s488 <= z', s489 >= 0, s489 <= z, s490 >= 0, s490 <= z', s193 >= 0, s193 <= 0 + 1, s48 >= 0, s48 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 }-> if(0, 2, s49, s491, s492, 1 + p(x') + s493, 1 + s194 + s494, z'', append(z'', 0)) :|: s491 >= 0, s491 <= z, s492 >= 0, s492 <= z', s493 >= 0, s493 <= z, s494 >= 0, s494 <= z', s194 >= 0, s194 <= 0 + 1, s49 >= 0, s49 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x' }-> if(0, 2, s50, s495, s496, 1 + p(0) + s497, 1 + s195 + s498, z'', append(z'', x'')) :|: s495 >= 0, s495 <= z, s496 >= 0, s496 <= z', s497 >= 0, s497 <= z, s498 >= 0, s498 <= z', s195 >= 0, s195 <= x' + 1, s50 >= 0, s50 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' }-> if(0, 2, s51, s499, s500, 1 + p(0) + s501, 1 + s196 + s502, z'', append(z'', 0)) :|: s499 >= 0, s499 <= z, s500 >= 0, s500 <= z', s501 >= 0, s501 <= z, s502 >= 0, s502 <= z', s196 >= 0, s196 <= x' + 1, s51 >= 0, s51 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 }-> if(0, 2, s52, s503, s504, 1 + p(0) + s505, 1 + s197 + s506, z'', append(z'', x')) :|: s503 >= 0, s503 <= z, s504 >= 0, s504 <= z', s505 >= 0, s505 <= z, s506 >= 0, s506 <= z', s197 >= 0, s197 <= 0 + 1, s52 >= 0, s52 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 }-> if(0, 2, s53, s507, s508, 1 + p(0) + s509, 1 + s198 + s510, z'', append(z'', 0)) :|: s507 >= 0, s507 <= z, s508 >= 0, s508 <= z', s509 >= 0, s509 <= z, s510 >= 0, s510 <= z', s198 >= 0, s198 <= 0 + 1, s53 >= 0, s53 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 11 + x' }-> if(0, 2, s54, s511, s512, 1 + p(x) + s513, 1 + s199 + s514, z'', append(z'', x'')) :|: s511 >= 0, s511 <= z, s512 >= 0, s512 <= z', s513 >= 0, s513 <= z, s514 >= 0, s514 <= z', s199 >= 0, s199 <= x' + 1, s54 >= 0, s54 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' }-> if(0, 2, s55, s515, s516, 1 + p(x) + s517, 1 + s200 + s518, z'', append(z'', 0)) :|: s515 >= 0, s515 <= z, s516 >= 0, s516 <= z', s517 >= 0, s517 <= z, s518 >= 0, s518 <= z', s200 >= 0, s200 <= x' + 1, s55 >= 0, s55 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 }-> if(0, 2, s56, s519, s520, 1 + p(x) + s521, 1 + s201 + s522, z'', append(z'', x')) :|: s519 >= 0, s519 <= z, s520 >= 0, s520 <= z', s521 >= 0, s521 <= z, s522 >= 0, s522 <= z', s201 >= 0, s201 <= 0 + 1, s56 >= 0, s56 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 }-> if(0, 2, s57, s523, s524, 1 + p(x) + s525, 1 + s202 + s526, z'', append(z'', 0)) :|: s523 >= 0, s523 <= z, s524 >= 0, s524 <= z', s525 >= 0, s525 <= z, s526 >= 0, s526 <= z', s202 >= 0, s202 <= 0 + 1, s57 >= 0, s57 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 10 + x }-> if(0, 2, s58, s527, s528, 1 + p(0) + s529, 1 + s203 + s530, z'', append(z'', x')) :|: s527 >= 0, s527 <= z, s528 >= 0, s528 <= z', s529 >= 0, s529 <= z, s530 >= 0, s530 <= z', s203 >= 0, s203 <= x + 1, s58 >= 0, s58 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 + x }-> if(0, 2, s59, s531, s532, 1 + p(0) + s533, 1 + s204 + s534, z'', append(z'', 0)) :|: s531 >= 0, s531 <= z, s532 >= 0, s532 <= z', s533 >= 0, s533 <= z, s534 >= 0, s534 <= z', s204 >= 0, s204 <= x + 1, s59 >= 0, s59 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 9 }-> if(0, 2, s60, s535, s536, 1 + p(0) + s537, 1 + s205 + s538, z'', append(z'', x)) :|: s535 >= 0, s535 <= z, s536 >= 0, s536 <= z', s537 >= 0, s537 <= z, s538 >= 0, s538 <= z', s205 >= 0, s205 <= 0 + 1, s60 >= 0, s60 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 8 }-> if(0, 2, s61, s539, s540, 1 + p(0) + s541, 1 + s206 + s542, z'', append(z'', 0)) :|: s539 >= 0, s539 <= z, s540 >= 0, s540 <= z', s541 >= 0, s541 <= z, s542 >= 0, s542 <= z', s206 >= 0, s206 <= 0 + 1, s61 >= 0, s61 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 addLists(z, z', z'') -{ 12 + x1 }-> if(0, 1, s78, s607, s608, 1 + p(x'') + s609, 1 + s223 + s610, z'', append(z'', x2)) :|: s607 >= 0, s607 <= z, s608 >= 0, s608 <= z', s609 >= 0, s609 <= z, s610 >= 0, s610 <= z', s223 >= 0, s223 <= x1 + 1, s78 >= 0, s78 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 11 + x1 }-> if(0, 1, s79, s611, s612, 1 + p(x'') + s613, 1 + s224 + s614, z'', append(z'', 0)) :|: s611 >= 0, s611 <= z, s612 >= 0, s612 <= z', s613 >= 0, s613 <= z, s614 >= 0, s614 <= z', s224 >= 0, s224 <= x1 + 1, s79 >= 0, s79 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 }-> if(0, 1, s80, s615, s616, 1 + p(x'') + s617, 1 + s225 + s618, z'', append(z'', x1)) :|: s615 >= 0, s615 <= z, s616 >= 0, s616 <= z', s617 >= 0, s617 <= z, s618 >= 0, s618 <= z', s225 >= 0, s225 <= 0 + 1, s80 >= 0, s80 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 10 }-> if(0, 1, s81, s619, s620, 1 + p(x'') + s621, 1 + s226 + s622, z'', append(z'', 0)) :|: s619 >= 0, s619 <= z, s620 >= 0, s620 <= z', s621 >= 0, s621 <= z, s622 >= 0, s622 <= z', s226 >= 0, s226 <= 0 + 1, s81 >= 0, s81 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x'' }-> if(0, 1, s82, s623, s624, 1 + p(0) + s625, 1 + s227 + s626, z'', append(z'', x1)) :|: s623 >= 0, s623 <= z, s624 >= 0, s624 <= z', s625 >= 0, s625 <= z, s626 >= 0, s626 <= z', s227 >= 0, s227 <= x'' + 1, s82 >= 0, s82 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 10 + x'' }-> if(0, 1, s83, s627, s628, 1 + p(0) + s629, 1 + s228 + s630, z'', append(z'', 0)) :|: s627 >= 0, s627 <= z, s628 >= 0, s628 <= z', s629 >= 0, s629 <= z, s630 >= 0, s630 <= z', s228 >= 0, s228 <= x'' + 1, s83 >= 0, s83 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 }-> if(0, 1, s84, s631, s632, 1 + p(0) + s633, 1 + s229 + s634, z'', append(z'', x'')) :|: s631 >= 0, s631 <= z, s632 >= 0, s632 <= z', s633 >= 0, s633 <= z, s634 >= 0, s634 <= z', s229 >= 0, s229 <= 0 + 1, s84 >= 0, s84 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 9 }-> if(0, 1, s85, s635, s636, 1 + p(0) + s637, 1 + s230 + s638, z'', append(z'', 0)) :|: s635 >= 0, s635 <= z, s636 >= 0, s636 <= z', s637 >= 0, s637 <= z, s638 >= 0, s638 <= z', s230 >= 0, s230 <= 0 + 1, s85 >= 0, s85 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x'' }-> if(0, 1, s86, s639, s640, 1 + p(x') + s641, 1 + s231 + s642, z'', append(z'', x1)) :|: s639 >= 0, s639 <= z, s640 >= 0, s640 <= z', s641 >= 0, s641 <= z, s642 >= 0, s642 <= z', s231 >= 0, s231 <= x'' + 1, s86 >= 0, s86 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 10 + x'' }-> if(0, 1, s87, s643, s644, 1 + p(x') + s645, 1 + s232 + s646, z'', append(z'', 0)) :|: s643 >= 0, s643 <= z, s644 >= 0, s644 <= z', s645 >= 0, s645 <= z, s646 >= 0, s646 <= z', s232 >= 0, s232 <= x'' + 1, s87 >= 0, s87 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 }-> if(0, 1, s88, s647, s648, 1 + p(x') + s649, 1 + s233 + s650, z'', append(z'', x'')) :|: s647 >= 0, s647 <= z, s648 >= 0, s648 <= z', s649 >= 0, s649 <= z, s650 >= 0, s650 <= z', s233 >= 0, s233 <= 0 + 1, s88 >= 0, s88 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 9 }-> if(0, 1, s89, s651, s652, 1 + p(x') + s653, 1 + s234 + s654, z'', append(z'', 0)) :|: s651 >= 0, s651 <= z, s652 >= 0, s652 <= z', s653 >= 0, s653 <= z, s654 >= 0, s654 <= z', s234 >= 0, s234 <= 0 + 1, s89 >= 0, s89 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + x' }-> if(0, 1, s90, s655, s656, 1 + p(0) + s657, 1 + s235 + s658, z'', append(z'', x'')) :|: s655 >= 0, s655 <= z, s656 >= 0, s656 <= z', s657 >= 0, s657 <= z, s658 >= 0, s658 <= z', s235 >= 0, s235 <= x' + 1, s90 >= 0, s90 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 9 + x' }-> if(0, 1, s91, s659, s660, 1 + p(0) + s661, 1 + s236 + s662, z'', append(z'', 0)) :|: s659 >= 0, s659 <= z, s660 >= 0, s660 <= z', s661 >= 0, s661 <= z, s662 >= 0, s662 <= z', s236 >= 0, s236 <= x' + 1, s91 >= 0, s91 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 }-> if(0, 1, s92, s663, s664, 1 + p(0) + s665, 1 + s237 + s666, z'', append(z'', x')) :|: s663 >= 0, s663 <= z, s664 >= 0, s664 <= z', s665 >= 0, s665 <= z, s666 >= 0, s666 <= z', s237 >= 0, s237 <= 0 + 1, s92 >= 0, s92 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 8 }-> if(0, 1, s93, s667, s668, 1 + p(0) + s669, 1 + s238 + s670, z'', append(z'', 0)) :|: s667 >= 0, s667 <= z, s668 >= 0, s668 <= z', s669 >= 0, s669 <= z, s670 >= 0, s670 <= z', s238 >= 0, s238 <= 0 + 1, s93 >= 0, s93 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 11 + x'' }-> if(0, 0, s62, s543, s544, 1 + p(x') + s545, 1 + s207 + s546, z'', append(z'', x1)) :|: s543 >= 0, s543 <= z, s544 >= 0, s544 <= z', s545 >= 0, s545 <= z, s546 >= 0, s546 <= z', s207 >= 0, s207 <= x'' + 1, s62 >= 0, s62 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 10 + x'' }-> if(0, 0, s63, s547, s548, 1 + p(x') + s549, 1 + s208 + s550, z'', append(z'', 0)) :|: s547 >= 0, s547 <= z, s548 >= 0, s548 <= z', s549 >= 0, s549 <= z, s550 >= 0, s550 <= z', s208 >= 0, s208 <= x'' + 1, s63 >= 0, s63 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 }-> if(0, 0, s64, s551, s552, 1 + p(x') + s553, 1 + s209 + s554, z'', append(z'', x'')) :|: s551 >= 0, s551 <= z, s552 >= 0, s552 <= z', s553 >= 0, s553 <= z, s554 >= 0, s554 <= z', s209 >= 0, s209 <= 0 + 1, s64 >= 0, s64 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 9 }-> if(0, 0, s65, s555, s556, 1 + p(x') + s557, 1 + s210 + s558, z'', append(z'', 0)) :|: s555 >= 0, s555 <= z, s556 >= 0, s556 <= z', s557 >= 0, s557 <= z, s558 >= 0, s558 <= z', s210 >= 0, s210 <= 0 + 1, s65 >= 0, s65 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + x' }-> if(0, 0, s66, s559, s560, 1 + p(0) + s561, 1 + s211 + s562, z'', append(z'', x'')) :|: s559 >= 0, s559 <= z, s560 >= 0, s560 <= z', s561 >= 0, s561 <= z, s562 >= 0, s562 <= z', s211 >= 0, s211 <= x' + 1, s66 >= 0, s66 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 9 + x' }-> if(0, 0, s67, s563, s564, 1 + p(0) + s565, 1 + s212 + s566, z'', append(z'', 0)) :|: s563 >= 0, s563 <= z, s564 >= 0, s564 <= z', s565 >= 0, s565 <= z, s566 >= 0, s566 <= z', s212 >= 0, s212 <= x' + 1, s67 >= 0, s67 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 }-> if(0, 0, s68, s567, s568, 1 + p(0) + s569, 1 + s213 + s570, z'', append(z'', x')) :|: s567 >= 0, s567 <= z, s568 >= 0, s568 <= z', s569 >= 0, s569 <= z, s570 >= 0, s570 <= z', s213 >= 0, s213 <= 0 + 1, s68 >= 0, s68 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 8 }-> if(0, 0, s69, s571, s572, 1 + p(0) + s573, 1 + s214 + s574, z'', append(z'', 0)) :|: s571 >= 0, s571 <= z, s572 >= 0, s572 <= z', s573 >= 0, s573 <= z, s574 >= 0, s574 <= z', s214 >= 0, s214 <= 0 + 1, s69 >= 0, s69 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 10 + x' }-> if(0, 0, s70, s575, s576, 1 + p(x) + s577, 1 + s215 + s578, z'', append(z'', x'')) :|: s575 >= 0, s575 <= z, s576 >= 0, s576 <= z', s577 >= 0, s577 <= z, s578 >= 0, s578 <= z', s215 >= 0, s215 <= x' + 1, s70 >= 0, s70 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 9 + x' }-> if(0, 0, s71, s579, s580, 1 + p(x) + s581, 1 + s216 + s582, z'', append(z'', 0)) :|: s579 >= 0, s579 <= z, s580 >= 0, s580 <= z', s581 >= 0, s581 <= z, s582 >= 0, s582 <= z', s216 >= 0, s216 <= x' + 1, s71 >= 0, s71 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 }-> if(0, 0, s72, s583, s584, 1 + p(x) + s585, 1 + s217 + s586, z'', append(z'', x')) :|: s583 >= 0, s583 <= z, s584 >= 0, s584 <= z', s585 >= 0, s585 <= z, s586 >= 0, s586 <= z', s217 >= 0, s217 <= 0 + 1, s72 >= 0, s72 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 8 }-> if(0, 0, s73, s587, s588, 1 + p(x) + s589, 1 + s218 + s590, z'', append(z'', 0)) :|: s587 >= 0, s587 <= z, s588 >= 0, s588 <= z', s589 >= 0, s589 <= z, s590 >= 0, s590 <= z', s218 >= 0, s218 <= 0 + 1, s73 >= 0, s73 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 9 + x }-> if(0, 0, s74, s591, s592, 1 + p(0) + s593, 1 + s219 + s594, z'', append(z'', x')) :|: s591 >= 0, s591 <= z, s592 >= 0, s592 <= z', s593 >= 0, s593 <= z, s594 >= 0, s594 <= z', s219 >= 0, s219 <= x + 1, s74 >= 0, s74 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 8 + x }-> if(0, 0, s75, s595, s596, 1 + p(0) + s597, 1 + s220 + s598, z'', append(z'', 0)) :|: s595 >= 0, s595 <= z, s596 >= 0, s596 <= z', s597 >= 0, s597 <= z, s598 >= 0, s598 <= z', s220 >= 0, s220 <= x + 1, s75 >= 0, s75 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 8 }-> if(0, 0, s76, s599, s600, 1 + p(0) + s601, 1 + s221 + s602, z'', append(z'', x)) :|: s599 >= 0, s599 <= z, s600 >= 0, s600 <= z', s601 >= 0, s601 <= z, s602 >= 0, s602 <= z', s221 >= 0, s221 <= 0 + 1, s76 >= 0, s76 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 7 }-> if(0, 0, s77, s603, s604, 1 + p(0) + s605, 1 + s222 + s606, z'', append(z'', 0)) :|: s603 >= 0, s603 <= z, s604 >= 0, s604 <= z', s605 >= 0, s605 <= z, s606 >= 0, s606 <= z', s222 >= 0, s222 <= 0 + 1, s77 >= 0, s77 <= 2, z >= 0, z' >= 0, z'' >= 0 append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 append(z, z') -{ 1 }-> 1 + y + append(ys, z') :|: ys >= 0, y >= 0, z' >= 0, z = 1 + y + ys append(z, z') -{ 1 }-> 1 + z' + 1 :|: z = 1, z' >= 0 head(z) -{ 1 }-> x :|: z = 1 + x + xs, xs >= 0, x >= 0 head(z) -{ 0 }-> 0 :|: z >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> z5 :|: z1 >= 0, z' = 2, z5 >= 0, z6 >= 0, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z1, z2, z6) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 2, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z3, z4, z5) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 1, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z5 >= 0, z6 >= 0, z' = 1, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z' = 2, z = 1, z5 >= 0, z6 >= 0, z4 >= 0, z'' >= 0, z3 >= 0, z2 >= 0 inc(z) -{ 1 + z }-> 1 + s142 :|: s142 >= 0, s142 <= z - 1 + 1, z - 1 >= 0 inc(z) -{ 1 }-> 1 + 0 :|: z = 0 isEmpty(z) -{ 1 }-> 2 :|: z = 1 isEmpty(z) -{ 1 }-> 1 :|: z = 1 + x + xs, xs >= 0, x >= 0 isEmpty(z) -{ 0 }-> 0 :|: z >= 0 isZero(z) -{ 1 }-> 2 :|: z = 0 isZero(z) -{ 1 }-> 1 :|: z - 1 >= 0 p(z) -{ 1 }-> 0 :|: z = 1 + 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 1 }-> 1 + p(1 + (z - 2)) :|: z - 2 >= 0 tail(z) -{ 1 }-> xs :|: z = 1 + x + xs, xs >= 0, x >= 0 tail(z) -{ 1 }-> 1 :|: z = 1 tail(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {append}, {head}, {p}, {addLists,if}, {addList} Previous analysis results are: isEmpty: runtime: O(1) [1], size: O(1) [2] isZero: runtime: O(1) [1], size: O(1) [2] inc: runtime: O(n^1) [1 + z], size: O(n^1) [1 + z] tail: runtime: O(1) [1], size: O(n^1) [z] ---------------------------------------- (47) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using KoAT for: append after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 1 + z + z' ---------------------------------------- (48) Obligation: Complexity RNTS consisting of the following rules: addList(z, z') -{ 1 }-> addLists(z, z', 1) :|: z >= 0, z' >= 0 addLists(z, z', z'') -{ 13 + x'' }-> if(2, 2, s, s287, s288, 1 + p(x') + s289, 1 + s143 + s290, z'', append(z'', x1)) :|: s287 >= 0, s287 <= z, s288 >= 0, s288 <= z', s289 >= 0, s289 <= z, s290 >= 0, s290 <= z', s143 >= 0, s143 <= x'' + 1, s >= 0, s <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' }-> if(2, 2, s', s291, s292, 1 + p(x') + s293, 1 + s144 + s294, z'', append(z'', 0)) :|: s291 >= 0, s291 <= z, s292 >= 0, s292 <= z', s293 >= 0, s293 <= z, s294 >= 0, s294 <= z', s144 >= 0, s144 <= x'' + 1, s' >= 0, s' <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 }-> if(2, 2, s'', s295, s296, 1 + p(x') + s297, 1 + s145 + s298, z'', append(z'', x'')) :|: s295 >= 0, s295 <= z, s296 >= 0, s296 <= z', s297 >= 0, s297 <= z, s298 >= 0, s298 <= z', s145 >= 0, s145 <= 0 + 1, s'' >= 0, s'' <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 }-> if(2, 2, s1, s299, s300, 1 + p(x') + s301, 1 + s146 + s302, z'', append(z'', 0)) :|: s299 >= 0, s299 <= z, s300 >= 0, s300 <= z', s301 >= 0, s301 <= z, s302 >= 0, s302 <= z', s146 >= 0, s146 <= 0 + 1, s1 >= 0, s1 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x }-> if(2, 2, s10, s335, s336, 1 + p(0) + s337, 1 + s155 + s338, z'', append(z'', x')) :|: s335 >= 0, s335 <= z, s336 >= 0, s336 <= z', s337 >= 0, s337 <= z, s338 >= 0, s338 <= z', s155 >= 0, s155 <= x + 1, s10 >= 0, s10 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + x }-> if(2, 2, s11, s339, s340, 1 + p(0) + s341, 1 + s156 + s342, z'', append(z'', 0)) :|: s339 >= 0, s339 <= z, s340 >= 0, s340 <= z', s341 >= 0, s341 <= z, s342 >= 0, s342 <= z', s156 >= 0, s156 <= x + 1, s11 >= 0, s11 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 10 }-> if(2, 2, s12, s343, s344, 1 + p(0) + s345, 1 + s157 + s346, z'', append(z'', x)) :|: s343 >= 0, s343 <= z, s344 >= 0, s344 <= z', s345 >= 0, s345 <= z, s346 >= 0, s346 <= z', s157 >= 0, s157 <= 0 + 1, s12 >= 0, s12 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 9 }-> if(2, 2, s13, s347, s348, 1 + p(0) + s349, 1 + s158 + s350, z'', append(z'', 0)) :|: s347 >= 0, s347 <= z, s348 >= 0, s348 <= z', s349 >= 0, s349 <= z, s350 >= 0, s350 <= z', s158 >= 0, s158 <= 0 + 1, s13 >= 0, s13 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 addLists(z, z', z'') -{ 12 + x' }-> if(2, 2, s2, s303, s304, 1 + p(0) + s305, 1 + s147 + s306, z'', append(z'', x'')) :|: s303 >= 0, s303 <= z, s304 >= 0, s304 <= z', s305 >= 0, s305 <= z, s306 >= 0, s306 <= z', s147 >= 0, s147 <= x' + 1, s2 >= 0, s2 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' }-> if(2, 2, s3, s307, s308, 1 + p(0) + s309, 1 + s148 + s310, z'', append(z'', 0)) :|: s307 >= 0, s307 <= z, s308 >= 0, s308 <= z', s309 >= 0, s309 <= z, s310 >= 0, s310 <= z', s148 >= 0, s148 <= x' + 1, s3 >= 0, s3 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 }-> if(2, 2, s4, s311, s312, 1 + p(0) + s313, 1 + s149 + s314, z'', append(z'', x')) :|: s311 >= 0, s311 <= z, s312 >= 0, s312 <= z', s313 >= 0, s313 <= z, s314 >= 0, s314 <= z', s149 >= 0, s149 <= 0 + 1, s4 >= 0, s4 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 }-> if(2, 2, s5, s315, s316, 1 + p(0) + s317, 1 + s150 + s318, z'', append(z'', 0)) :|: s315 >= 0, s315 <= z, s316 >= 0, s316 <= z', s317 >= 0, s317 <= z, s318 >= 0, s318 <= z', s150 >= 0, s150 <= 0 + 1, s5 >= 0, s5 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 12 + x' }-> if(2, 2, s6, s319, s320, 1 + p(x) + s321, 1 + s151 + s322, z'', append(z'', x'')) :|: s319 >= 0, s319 <= z, s320 >= 0, s320 <= z', s321 >= 0, s321 <= z, s322 >= 0, s322 <= z', s151 >= 0, s151 <= x' + 1, s6 >= 0, s6 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' }-> if(2, 2, s7, s323, s324, 1 + p(x) + s325, 1 + s152 + s326, z'', append(z'', 0)) :|: s323 >= 0, s323 <= z, s324 >= 0, s324 <= z', s325 >= 0, s325 <= z, s326 >= 0, s326 <= z', s152 >= 0, s152 <= x' + 1, s7 >= 0, s7 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 }-> if(2, 2, s8, s327, s328, 1 + p(x) + s329, 1 + s153 + s330, z'', append(z'', x')) :|: s327 >= 0, s327 <= z, s328 >= 0, s328 <= z', s329 >= 0, s329 <= z, s330 >= 0, s330 <= z', s153 >= 0, s153 <= 0 + 1, s8 >= 0, s8 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 }-> if(2, 2, s9, s331, s332, 1 + p(x) + s333, 1 + s154 + s334, z'', append(z'', 0)) :|: s331 >= 0, s331 <= z, s332 >= 0, s332 <= z', s333 >= 0, s333 <= z, s334 >= 0, s334 <= z', s154 >= 0, s154 <= 0 + 1, s9 >= 0, s9 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 13 + x1 }-> if(2, 1, s30, s415, s416, 1 + p(x'') + s417, 1 + s175 + s418, z'', append(z'', x2)) :|: s415 >= 0, s415 <= z, s416 >= 0, s416 <= z', s417 >= 0, s417 <= z, s418 >= 0, s418 <= z', s175 >= 0, s175 <= x1 + 1, s30 >= 0, s30 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 + x1 }-> if(2, 1, s31, s419, s420, 1 + p(x'') + s421, 1 + s176 + s422, z'', append(z'', 0)) :|: s419 >= 0, s419 <= z, s420 >= 0, s420 <= z', s421 >= 0, s421 <= z, s422 >= 0, s422 <= z', s176 >= 0, s176 <= x1 + 1, s31 >= 0, s31 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 }-> if(2, 1, s32, s423, s424, 1 + p(x'') + s425, 1 + s177 + s426, z'', append(z'', x1)) :|: s423 >= 0, s423 <= z, s424 >= 0, s424 <= z', s425 >= 0, s425 <= z, s426 >= 0, s426 <= z', s177 >= 0, s177 <= 0 + 1, s32 >= 0, s32 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 }-> if(2, 1, s33, s427, s428, 1 + p(x'') + s429, 1 + s178 + s430, z'', append(z'', 0)) :|: s427 >= 0, s427 <= z, s428 >= 0, s428 <= z', s429 >= 0, s429 <= z, s430 >= 0, s430 <= z', s178 >= 0, s178 <= 0 + 1, s33 >= 0, s33 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x'' }-> if(2, 1, s34, s431, s432, 1 + p(0) + s433, 1 + s179 + s434, z'', append(z'', x1)) :|: s431 >= 0, s431 <= z, s432 >= 0, s432 <= z', s433 >= 0, s433 <= z, s434 >= 0, s434 <= z', s179 >= 0, s179 <= x'' + 1, s34 >= 0, s34 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' }-> if(2, 1, s35, s435, s436, 1 + p(0) + s437, 1 + s180 + s438, z'', append(z'', 0)) :|: s435 >= 0, s435 <= z, s436 >= 0, s436 <= z', s437 >= 0, s437 <= z, s438 >= 0, s438 <= z', s180 >= 0, s180 <= x'' + 1, s35 >= 0, s35 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 }-> if(2, 1, s36, s439, s440, 1 + p(0) + s441, 1 + s181 + s442, z'', append(z'', x'')) :|: s439 >= 0, s439 <= z, s440 >= 0, s440 <= z', s441 >= 0, s441 <= z, s442 >= 0, s442 <= z', s181 >= 0, s181 <= 0 + 1, s36 >= 0, s36 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 }-> if(2, 1, s37, s443, s444, 1 + p(0) + s445, 1 + s182 + s446, z'', append(z'', 0)) :|: s443 >= 0, s443 <= z, s444 >= 0, s444 <= z', s445 >= 0, s445 <= z, s446 >= 0, s446 <= z', s182 >= 0, s182 <= 0 + 1, s37 >= 0, s37 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x'' }-> if(2, 1, s38, s447, s448, 1 + p(x') + s449, 1 + s183 + s450, z'', append(z'', x1)) :|: s447 >= 0, s447 <= z, s448 >= 0, s448 <= z', s449 >= 0, s449 <= z, s450 >= 0, s450 <= z', s183 >= 0, s183 <= x'' + 1, s38 >= 0, s38 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' }-> if(2, 1, s39, s451, s452, 1 + p(x') + s453, 1 + s184 + s454, z'', append(z'', 0)) :|: s451 >= 0, s451 <= z, s452 >= 0, s452 <= z', s453 >= 0, s453 <= z, s454 >= 0, s454 <= z', s184 >= 0, s184 <= x'' + 1, s39 >= 0, s39 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 }-> if(2, 1, s40, s455, s456, 1 + p(x') + s457, 1 + s185 + s458, z'', append(z'', x'')) :|: s455 >= 0, s455 <= z, s456 >= 0, s456 <= z', s457 >= 0, s457 <= z, s458 >= 0, s458 <= z', s185 >= 0, s185 <= 0 + 1, s40 >= 0, s40 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 }-> if(2, 1, s41, s459, s460, 1 + p(x') + s461, 1 + s186 + s462, z'', append(z'', 0)) :|: s459 >= 0, s459 <= z, s460 >= 0, s460 <= z', s461 >= 0, s461 <= z, s462 >= 0, s462 <= z', s186 >= 0, s186 <= 0 + 1, s41 >= 0, s41 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x' }-> if(2, 1, s42, s463, s464, 1 + p(0) + s465, 1 + s187 + s466, z'', append(z'', x'')) :|: s463 >= 0, s463 <= z, s464 >= 0, s464 <= z', s465 >= 0, s465 <= z, s466 >= 0, s466 <= z', s187 >= 0, s187 <= x' + 1, s42 >= 0, s42 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' }-> if(2, 1, s43, s467, s468, 1 + p(0) + s469, 1 + s188 + s470, z'', append(z'', 0)) :|: s467 >= 0, s467 <= z, s468 >= 0, s468 <= z', s469 >= 0, s469 <= z, s470 >= 0, s470 <= z', s188 >= 0, s188 <= x' + 1, s43 >= 0, s43 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 }-> if(2, 1, s44, s471, s472, 1 + p(0) + s473, 1 + s189 + s474, z'', append(z'', x')) :|: s471 >= 0, s471 <= z, s472 >= 0, s472 <= z', s473 >= 0, s473 <= z, s474 >= 0, s474 <= z', s189 >= 0, s189 <= 0 + 1, s44 >= 0, s44 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 }-> if(2, 1, s45, s475, s476, 1 + p(0) + s477, 1 + s190 + s478, z'', append(z'', 0)) :|: s475 >= 0, s475 <= z, s476 >= 0, s476 <= z', s477 >= 0, s477 <= z, s478 >= 0, s478 <= z', s190 >= 0, s190 <= 0 + 1, s45 >= 0, s45 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 12 + x'' }-> if(2, 0, s14, s351, s352, 1 + p(x') + s353, 1 + s159 + s354, z'', append(z'', x1)) :|: s351 >= 0, s351 <= z, s352 >= 0, s352 <= z', s353 >= 0, s353 <= z, s354 >= 0, s354 <= z', s159 >= 0, s159 <= x'' + 1, s14 >= 0, s14 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' }-> if(2, 0, s15, s355, s356, 1 + p(x') + s357, 1 + s160 + s358, z'', append(z'', 0)) :|: s355 >= 0, s355 <= z, s356 >= 0, s356 <= z', s357 >= 0, s357 <= z, s358 >= 0, s358 <= z', s160 >= 0, s160 <= x'' + 1, s15 >= 0, s15 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 }-> if(2, 0, s16, s359, s360, 1 + p(x') + s361, 1 + s161 + s362, z'', append(z'', x'')) :|: s359 >= 0, s359 <= z, s360 >= 0, s360 <= z', s361 >= 0, s361 <= z, s362 >= 0, s362 <= z', s161 >= 0, s161 <= 0 + 1, s16 >= 0, s16 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 }-> if(2, 0, s17, s363, s364, 1 + p(x') + s365, 1 + s162 + s366, z'', append(z'', 0)) :|: s363 >= 0, s363 <= z, s364 >= 0, s364 <= z', s365 >= 0, s365 <= z, s366 >= 0, s366 <= z', s162 >= 0, s162 <= 0 + 1, s17 >= 0, s17 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x' }-> if(2, 0, s18, s367, s368, 1 + p(0) + s369, 1 + s163 + s370, z'', append(z'', x'')) :|: s367 >= 0, s367 <= z, s368 >= 0, s368 <= z', s369 >= 0, s369 <= z, s370 >= 0, s370 <= z', s163 >= 0, s163 <= x' + 1, s18 >= 0, s18 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' }-> if(2, 0, s19, s371, s372, 1 + p(0) + s373, 1 + s164 + s374, z'', append(z'', 0)) :|: s371 >= 0, s371 <= z, s372 >= 0, s372 <= z', s373 >= 0, s373 <= z, s374 >= 0, s374 <= z', s164 >= 0, s164 <= x' + 1, s19 >= 0, s19 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 }-> if(2, 0, s20, s375, s376, 1 + p(0) + s377, 1 + s165 + s378, z'', append(z'', x')) :|: s375 >= 0, s375 <= z, s376 >= 0, s376 <= z', s377 >= 0, s377 <= z, s378 >= 0, s378 <= z', s165 >= 0, s165 <= 0 + 1, s20 >= 0, s20 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 }-> if(2, 0, s21, s379, s380, 1 + p(0) + s381, 1 + s166 + s382, z'', append(z'', 0)) :|: s379 >= 0, s379 <= z, s380 >= 0, s380 <= z', s381 >= 0, s381 <= z, s382 >= 0, s382 <= z', s166 >= 0, s166 <= 0 + 1, s21 >= 0, s21 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 11 + x' }-> if(2, 0, s22, s383, s384, 1 + p(x) + s385, 1 + s167 + s386, z'', append(z'', x'')) :|: s383 >= 0, s383 <= z, s384 >= 0, s384 <= z', s385 >= 0, s385 <= z, s386 >= 0, s386 <= z', s167 >= 0, s167 <= x' + 1, s22 >= 0, s22 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' }-> if(2, 0, s23, s387, s388, 1 + p(x) + s389, 1 + s168 + s390, z'', append(z'', 0)) :|: s387 >= 0, s387 <= z, s388 >= 0, s388 <= z', s389 >= 0, s389 <= z, s390 >= 0, s390 <= z', s168 >= 0, s168 <= x' + 1, s23 >= 0, s23 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 }-> if(2, 0, s24, s391, s392, 1 + p(x) + s393, 1 + s169 + s394, z'', append(z'', x')) :|: s391 >= 0, s391 <= z, s392 >= 0, s392 <= z', s393 >= 0, s393 <= z, s394 >= 0, s394 <= z', s169 >= 0, s169 <= 0 + 1, s24 >= 0, s24 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 }-> if(2, 0, s25, s395, s396, 1 + p(x) + s397, 1 + s170 + s398, z'', append(z'', 0)) :|: s395 >= 0, s395 <= z, s396 >= 0, s396 <= z', s397 >= 0, s397 <= z, s398 >= 0, s398 <= z', s170 >= 0, s170 <= 0 + 1, s25 >= 0, s25 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 10 + x }-> if(2, 0, s26, s399, s400, 1 + p(0) + s401, 1 + s171 + s402, z'', append(z'', x')) :|: s399 >= 0, s399 <= z, s400 >= 0, s400 <= z', s401 >= 0, s401 <= z, s402 >= 0, s402 <= z', s171 >= 0, s171 <= x + 1, s26 >= 0, s26 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 + x }-> if(2, 0, s27, s403, s404, 1 + p(0) + s405, 1 + s172 + s406, z'', append(z'', 0)) :|: s403 >= 0, s403 <= z, s404 >= 0, s404 <= z', s405 >= 0, s405 <= z, s406 >= 0, s406 <= z', s172 >= 0, s172 <= x + 1, s27 >= 0, s27 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 9 }-> if(2, 0, s28, s407, s408, 1 + p(0) + s409, 1 + s173 + s410, z'', append(z'', x)) :|: s407 >= 0, s407 <= z, s408 >= 0, s408 <= z', s409 >= 0, s409 <= z, s410 >= 0, s410 <= z', s173 >= 0, s173 <= 0 + 1, s28 >= 0, s28 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 8 }-> if(2, 0, s29, s411, s412, 1 + p(0) + s413, 1 + s174 + s414, z'', append(z'', 0)) :|: s411 >= 0, s411 <= z, s412 >= 0, s412 <= z', s413 >= 0, s413 <= z, s414 >= 0, s414 <= z', s174 >= 0, s174 <= 0 + 1, s29 >= 0, s29 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 addLists(z, z', z'') -{ 11 }-> if(1, 2, s100, s695, s696, 1 + p(0) + s697, 1 + s245 + s698, z'', append(z'', x'')) :|: s695 >= 0, s695 <= z, s696 >= 0, s696 <= z', s697 >= 0, s697 <= z, s698 >= 0, s698 <= z', s245 >= 0, s245 <= 0 + 1, s100 >= 0, s100 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 }-> if(1, 2, s101, s699, s700, 1 + p(0) + s701, 1 + s246 + s702, z'', append(z'', 0)) :|: s699 >= 0, s699 <= z, s700 >= 0, s700 <= z', s701 >= 0, s701 <= z, s702 >= 0, s702 <= z', s246 >= 0, s246 <= 0 + 1, s101 >= 0, s101 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x'' }-> if(1, 2, s102, s703, s704, 1 + p(x') + s705, 1 + s247 + s706, z'', append(z'', x1)) :|: s703 >= 0, s703 <= z, s704 >= 0, s704 <= z', s705 >= 0, s705 <= z, s706 >= 0, s706 <= z', s247 >= 0, s247 <= x'' + 1, s102 >= 0, s102 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' }-> if(1, 2, s103, s707, s708, 1 + p(x') + s709, 1 + s248 + s710, z'', append(z'', 0)) :|: s707 >= 0, s707 <= z, s708 >= 0, s708 <= z', s709 >= 0, s709 <= z, s710 >= 0, s710 <= z', s248 >= 0, s248 <= x'' + 1, s103 >= 0, s103 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 }-> if(1, 2, s104, s711, s712, 1 + p(x') + s713, 1 + s249 + s714, z'', append(z'', x'')) :|: s711 >= 0, s711 <= z, s712 >= 0, s712 <= z', s713 >= 0, s713 <= z, s714 >= 0, s714 <= z', s249 >= 0, s249 <= 0 + 1, s104 >= 0, s104 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 }-> if(1, 2, s105, s715, s716, 1 + p(x') + s717, 1 + s250 + s718, z'', append(z'', 0)) :|: s715 >= 0, s715 <= z, s716 >= 0, s716 <= z', s717 >= 0, s717 <= z, s718 >= 0, s718 <= z', s250 >= 0, s250 <= 0 + 1, s105 >= 0, s105 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x' }-> if(1, 2, s106, s719, s720, 1 + p(0) + s721, 1 + s251 + s722, z'', append(z'', x'')) :|: s719 >= 0, s719 <= z, s720 >= 0, s720 <= z', s721 >= 0, s721 <= z, s722 >= 0, s722 <= z', s251 >= 0, s251 <= x' + 1, s106 >= 0, s106 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' }-> if(1, 2, s107, s723, s724, 1 + p(0) + s725, 1 + s252 + s726, z'', append(z'', 0)) :|: s723 >= 0, s723 <= z, s724 >= 0, s724 <= z', s725 >= 0, s725 <= z, s726 >= 0, s726 <= z', s252 >= 0, s252 <= x' + 1, s107 >= 0, s107 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 }-> if(1, 2, s108, s727, s728, 1 + p(0) + s729, 1 + s253 + s730, z'', append(z'', x')) :|: s727 >= 0, s727 <= z, s728 >= 0, s728 <= z', s729 >= 0, s729 <= z, s730 >= 0, s730 <= z', s253 >= 0, s253 <= 0 + 1, s108 >= 0, s108 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 }-> if(1, 2, s109, s731, s732, 1 + p(0) + s733, 1 + s254 + s734, z'', append(z'', 0)) :|: s731 >= 0, s731 <= z, s732 >= 0, s732 <= z', s733 >= 0, s733 <= z, s734 >= 0, s734 <= z', s254 >= 0, s254 <= 0 + 1, s109 >= 0, s109 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 addLists(z, z', z'') -{ 13 + x1 }-> if(1, 2, s94, s671, s672, 1 + p(x'') + s673, 1 + s239 + s674, z'', append(z'', x2)) :|: s671 >= 0, s671 <= z, s672 >= 0, s672 <= z', s673 >= 0, s673 <= z, s674 >= 0, s674 <= z', s239 >= 0, s239 <= x1 + 1, s94 >= 0, s94 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 + x1 }-> if(1, 2, s95, s675, s676, 1 + p(x'') + s677, 1 + s240 + s678, z'', append(z'', 0)) :|: s675 >= 0, s675 <= z, s676 >= 0, s676 <= z', s677 >= 0, s677 <= z, s678 >= 0, s678 <= z', s240 >= 0, s240 <= x1 + 1, s95 >= 0, s95 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 }-> if(1, 2, s96, s679, s680, 1 + p(x'') + s681, 1 + s241 + s682, z'', append(z'', x1)) :|: s679 >= 0, s679 <= z, s680 >= 0, s680 <= z', s681 >= 0, s681 <= z, s682 >= 0, s682 <= z', s241 >= 0, s241 <= 0 + 1, s96 >= 0, s96 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 }-> if(1, 2, s97, s683, s684, 1 + p(x'') + s685, 1 + s242 + s686, z'', append(z'', 0)) :|: s683 >= 0, s683 <= z, s684 >= 0, s684 <= z', s685 >= 0, s685 <= z, s686 >= 0, s686 <= z', s242 >= 0, s242 <= 0 + 1, s97 >= 0, s97 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x'' }-> if(1, 2, s98, s687, s688, 1 + p(0) + s689, 1 + s243 + s690, z'', append(z'', x1)) :|: s687 >= 0, s687 <= z, s688 >= 0, s688 <= z', s689 >= 0, s689 <= z, s690 >= 0, s690 <= z', s243 >= 0, s243 <= x'' + 1, s98 >= 0, s98 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' }-> if(1, 2, s99, s691, s692, 1 + p(0) + s693, 1 + s244 + s694, z'', append(z'', 0)) :|: s691 >= 0, s691 <= z, s692 >= 0, s692 <= z', s693 >= 0, s693 <= z, s694 >= 0, s694 <= z', s244 >= 0, s244 <= x'' + 1, s99 >= 0, s99 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + x2 }-> if(1, 1, s126, s799, s800, 1 + p(x1) + s801, 1 + s271 + s802, z'', append(z'', x3)) :|: s799 >= 0, s799 <= z, s800 >= 0, s800 <= z', s801 >= 0, s801 <= z, s802 >= 0, s802 <= z', s271 >= 0, s271 <= x2 + 1, s126 >= 0, s126 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0, z' = 1 + x3 + xs4, xs4 >= 0, x3 >= 0 addLists(z, z', z'') -{ 12 + x2 }-> if(1, 1, s127, s803, s804, 1 + p(x1) + s805, 1 + s272 + s806, z'', append(z'', 0)) :|: s803 >= 0, s803 <= z, s804 >= 0, s804 <= z', s805 >= 0, s805 <= z, s806 >= 0, s806 <= z', s272 >= 0, s272 <= x2 + 1, s127 >= 0, s127 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 }-> if(1, 1, s128, s807, s808, 1 + p(x1) + s809, 1 + s273 + s810, z'', append(z'', x2)) :|: s807 >= 0, s807 <= z, s808 >= 0, s808 <= z', s809 >= 0, s809 <= z, s810 >= 0, s810 <= z', s273 >= 0, s273 <= 0 + 1, s128 >= 0, s128 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 11 }-> if(1, 1, s129, s811, s812, 1 + p(x1) + s813, 1 + s274 + s814, z'', append(z'', 0)) :|: s811 >= 0, s811 <= z, s812 >= 0, s812 <= z', s813 >= 0, s813 <= z, s814 >= 0, s814 <= z', s274 >= 0, s274 <= 0 + 1, s129 >= 0, s129 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x1 }-> if(1, 1, s130, s815, s816, 1 + p(0) + s817, 1 + s275 + s818, z'', append(z'', x2)) :|: s815 >= 0, s815 <= z, s816 >= 0, s816 <= z', s817 >= 0, s817 <= z, s818 >= 0, s818 <= z', s275 >= 0, s275 <= x1 + 1, s130 >= 0, s130 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 11 + x1 }-> if(1, 1, s131, s819, s820, 1 + p(0) + s821, 1 + s276 + s822, z'', append(z'', 0)) :|: s819 >= 0, s819 <= z, s820 >= 0, s820 <= z', s821 >= 0, s821 <= z, s822 >= 0, s822 <= z', s276 >= 0, s276 <= x1 + 1, s131 >= 0, s131 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 }-> if(1, 1, s132, s823, s824, 1 + p(0) + s825, 1 + s277 + s826, z'', append(z'', x1)) :|: s823 >= 0, s823 <= z, s824 >= 0, s824 <= z', s825 >= 0, s825 <= z, s826 >= 0, s826 <= z', s277 >= 0, s277 <= 0 + 1, s132 >= 0, s132 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 10 }-> if(1, 1, s133, s827, s828, 1 + p(0) + s829, 1 + s278 + s830, z'', append(z'', 0)) :|: s827 >= 0, s827 <= z, s828 >= 0, s828 <= z', s829 >= 0, s829 <= z, s830 >= 0, s830 <= z', s278 >= 0, s278 <= 0 + 1, s133 >= 0, s133 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x1 }-> if(1, 1, s134, s831, s832, 1 + p(x'') + s833, 1 + s279 + s834, z'', append(z'', x2)) :|: s831 >= 0, s831 <= z, s832 >= 0, s832 <= z', s833 >= 0, s833 <= z, s834 >= 0, s834 <= z', s279 >= 0, s279 <= x1 + 1, s134 >= 0, s134 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 11 + x1 }-> if(1, 1, s135, s835, s836, 1 + p(x'') + s837, 1 + s280 + s838, z'', append(z'', 0)) :|: s835 >= 0, s835 <= z, s836 >= 0, s836 <= z', s837 >= 0, s837 <= z, s838 >= 0, s838 <= z', s280 >= 0, s280 <= x1 + 1, s135 >= 0, s135 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 }-> if(1, 1, s136, s839, s840, 1 + p(x'') + s841, 1 + s281 + s842, z'', append(z'', x1)) :|: s839 >= 0, s839 <= z, s840 >= 0, s840 <= z', s841 >= 0, s841 <= z, s842 >= 0, s842 <= z', s281 >= 0, s281 <= 0 + 1, s136 >= 0, s136 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 10 }-> if(1, 1, s137, s843, s844, 1 + p(x'') + s845, 1 + s282 + s846, z'', append(z'', 0)) :|: s843 >= 0, s843 <= z, s844 >= 0, s844 <= z', s845 >= 0, s845 <= z, s846 >= 0, s846 <= z', s282 >= 0, s282 <= 0 + 1, s137 >= 0, s137 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x'' }-> if(1, 1, s138, s847, s848, 1 + p(0) + s849, 1 + s283 + s850, z'', append(z'', x1)) :|: s847 >= 0, s847 <= z, s848 >= 0, s848 <= z', s849 >= 0, s849 <= z, s850 >= 0, s850 <= z', s283 >= 0, s283 <= x'' + 1, s138 >= 0, s138 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 10 + x'' }-> if(1, 1, s139, s851, s852, 1 + p(0) + s853, 1 + s284 + s854, z'', append(z'', 0)) :|: s851 >= 0, s851 <= z, s852 >= 0, s852 <= z', s853 >= 0, s853 <= z, s854 >= 0, s854 <= z', s284 >= 0, s284 <= x'' + 1, s139 >= 0, s139 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 }-> if(1, 1, s140, s855, s856, 1 + p(0) + s857, 1 + s285 + s858, z'', append(z'', x'')) :|: s855 >= 0, s855 <= z, s856 >= 0, s856 <= z', s857 >= 0, s857 <= z, s858 >= 0, s858 <= z', s285 >= 0, s285 <= 0 + 1, s140 >= 0, s140 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 9 }-> if(1, 1, s141, s859, s860, 1 + p(0) + s861, 1 + s286 + s862, z'', append(z'', 0)) :|: s859 >= 0, s859 <= z, s860 >= 0, s860 <= z', s861 >= 0, s861 <= z, s862 >= 0, s862 <= z', s286 >= 0, s286 <= 0 + 1, s141 >= 0, s141 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x1 }-> if(1, 0, s110, s735, s736, 1 + p(x'') + s737, 1 + s255 + s738, z'', append(z'', x2)) :|: s735 >= 0, s735 <= z, s736 >= 0, s736 <= z', s737 >= 0, s737 <= z, s738 >= 0, s738 <= z', s255 >= 0, s255 <= x1 + 1, s110 >= 0, s110 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 11 + x1 }-> if(1, 0, s111, s739, s740, 1 + p(x'') + s741, 1 + s256 + s742, z'', append(z'', 0)) :|: s739 >= 0, s739 <= z, s740 >= 0, s740 <= z', s741 >= 0, s741 <= z, s742 >= 0, s742 <= z', s256 >= 0, s256 <= x1 + 1, s111 >= 0, s111 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 }-> if(1, 0, s112, s743, s744, 1 + p(x'') + s745, 1 + s257 + s746, z'', append(z'', x1)) :|: s743 >= 0, s743 <= z, s744 >= 0, s744 <= z', s745 >= 0, s745 <= z, s746 >= 0, s746 <= z', s257 >= 0, s257 <= 0 + 1, s112 >= 0, s112 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 10 }-> if(1, 0, s113, s747, s748, 1 + p(x'') + s749, 1 + s258 + s750, z'', append(z'', 0)) :|: s747 >= 0, s747 <= z, s748 >= 0, s748 <= z', s749 >= 0, s749 <= z, s750 >= 0, s750 <= z', s258 >= 0, s258 <= 0 + 1, s113 >= 0, s113 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x'' }-> if(1, 0, s114, s751, s752, 1 + p(0) + s753, 1 + s259 + s754, z'', append(z'', x1)) :|: s751 >= 0, s751 <= z, s752 >= 0, s752 <= z', s753 >= 0, s753 <= z, s754 >= 0, s754 <= z', s259 >= 0, s259 <= x'' + 1, s114 >= 0, s114 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 10 + x'' }-> if(1, 0, s115, s755, s756, 1 + p(0) + s757, 1 + s260 + s758, z'', append(z'', 0)) :|: s755 >= 0, s755 <= z, s756 >= 0, s756 <= z', s757 >= 0, s757 <= z, s758 >= 0, s758 <= z', s260 >= 0, s260 <= x'' + 1, s115 >= 0, s115 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 }-> if(1, 0, s116, s759, s760, 1 + p(0) + s761, 1 + s261 + s762, z'', append(z'', x'')) :|: s759 >= 0, s759 <= z, s760 >= 0, s760 <= z', s761 >= 0, s761 <= z, s762 >= 0, s762 <= z', s261 >= 0, s261 <= 0 + 1, s116 >= 0, s116 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 9 }-> if(1, 0, s117, s763, s764, 1 + p(0) + s765, 1 + s262 + s766, z'', append(z'', 0)) :|: s763 >= 0, s763 <= z, s764 >= 0, s764 <= z', s765 >= 0, s765 <= z, s766 >= 0, s766 <= z', s262 >= 0, s262 <= 0 + 1, s117 >= 0, s117 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x'' }-> if(1, 0, s118, s767, s768, 1 + p(x') + s769, 1 + s263 + s770, z'', append(z'', x1)) :|: s767 >= 0, s767 <= z, s768 >= 0, s768 <= z', s769 >= 0, s769 <= z, s770 >= 0, s770 <= z', s263 >= 0, s263 <= x'' + 1, s118 >= 0, s118 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 10 + x'' }-> if(1, 0, s119, s771, s772, 1 + p(x') + s773, 1 + s264 + s774, z'', append(z'', 0)) :|: s771 >= 0, s771 <= z, s772 >= 0, s772 <= z', s773 >= 0, s773 <= z, s774 >= 0, s774 <= z', s264 >= 0, s264 <= x'' + 1, s119 >= 0, s119 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 }-> if(1, 0, s120, s775, s776, 1 + p(x') + s777, 1 + s265 + s778, z'', append(z'', x'')) :|: s775 >= 0, s775 <= z, s776 >= 0, s776 <= z', s777 >= 0, s777 <= z, s778 >= 0, s778 <= z', s265 >= 0, s265 <= 0 + 1, s120 >= 0, s120 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 9 }-> if(1, 0, s121, s779, s780, 1 + p(x') + s781, 1 + s266 + s782, z'', append(z'', 0)) :|: s779 >= 0, s779 <= z, s780 >= 0, s780 <= z', s781 >= 0, s781 <= z, s782 >= 0, s782 <= z', s266 >= 0, s266 <= 0 + 1, s121 >= 0, s121 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + x' }-> if(1, 0, s122, s783, s784, 1 + p(0) + s785, 1 + s267 + s786, z'', append(z'', x'')) :|: s783 >= 0, s783 <= z, s784 >= 0, s784 <= z', s785 >= 0, s785 <= z, s786 >= 0, s786 <= z', s267 >= 0, s267 <= x' + 1, s122 >= 0, s122 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 9 + x' }-> if(1, 0, s123, s787, s788, 1 + p(0) + s789, 1 + s268 + s790, z'', append(z'', 0)) :|: s787 >= 0, s787 <= z, s788 >= 0, s788 <= z', s789 >= 0, s789 <= z, s790 >= 0, s790 <= z', s268 >= 0, s268 <= x' + 1, s123 >= 0, s123 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 }-> if(1, 0, s124, s791, s792, 1 + p(0) + s793, 1 + s269 + s794, z'', append(z'', x')) :|: s791 >= 0, s791 <= z, s792 >= 0, s792 <= z', s793 >= 0, s793 <= z, s794 >= 0, s794 <= z', s269 >= 0, s269 <= 0 + 1, s124 >= 0, s124 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 8 }-> if(1, 0, s125, s795, s796, 1 + p(0) + s797, 1 + s270 + s798, z'', append(z'', 0)) :|: s795 >= 0, s795 <= z, s796 >= 0, s796 <= z', s797 >= 0, s797 <= z, s798 >= 0, s798 <= z', s270 >= 0, s270 <= 0 + 1, s125 >= 0, s125 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 12 + x'' }-> if(0, 2, s46, s479, s480, 1 + p(x') + s481, 1 + s191 + s482, z'', append(z'', x1)) :|: s479 >= 0, s479 <= z, s480 >= 0, s480 <= z', s481 >= 0, s481 <= z, s482 >= 0, s482 <= z', s191 >= 0, s191 <= x'' + 1, s46 >= 0, s46 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' }-> if(0, 2, s47, s483, s484, 1 + p(x') + s485, 1 + s192 + s486, z'', append(z'', 0)) :|: s483 >= 0, s483 <= z, s484 >= 0, s484 <= z', s485 >= 0, s485 <= z, s486 >= 0, s486 <= z', s192 >= 0, s192 <= x'' + 1, s47 >= 0, s47 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 }-> if(0, 2, s48, s487, s488, 1 + p(x') + s489, 1 + s193 + s490, z'', append(z'', x'')) :|: s487 >= 0, s487 <= z, s488 >= 0, s488 <= z', s489 >= 0, s489 <= z, s490 >= 0, s490 <= z', s193 >= 0, s193 <= 0 + 1, s48 >= 0, s48 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 }-> if(0, 2, s49, s491, s492, 1 + p(x') + s493, 1 + s194 + s494, z'', append(z'', 0)) :|: s491 >= 0, s491 <= z, s492 >= 0, s492 <= z', s493 >= 0, s493 <= z, s494 >= 0, s494 <= z', s194 >= 0, s194 <= 0 + 1, s49 >= 0, s49 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x' }-> if(0, 2, s50, s495, s496, 1 + p(0) + s497, 1 + s195 + s498, z'', append(z'', x'')) :|: s495 >= 0, s495 <= z, s496 >= 0, s496 <= z', s497 >= 0, s497 <= z, s498 >= 0, s498 <= z', s195 >= 0, s195 <= x' + 1, s50 >= 0, s50 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' }-> if(0, 2, s51, s499, s500, 1 + p(0) + s501, 1 + s196 + s502, z'', append(z'', 0)) :|: s499 >= 0, s499 <= z, s500 >= 0, s500 <= z', s501 >= 0, s501 <= z, s502 >= 0, s502 <= z', s196 >= 0, s196 <= x' + 1, s51 >= 0, s51 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 }-> if(0, 2, s52, s503, s504, 1 + p(0) + s505, 1 + s197 + s506, z'', append(z'', x')) :|: s503 >= 0, s503 <= z, s504 >= 0, s504 <= z', s505 >= 0, s505 <= z, s506 >= 0, s506 <= z', s197 >= 0, s197 <= 0 + 1, s52 >= 0, s52 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 }-> if(0, 2, s53, s507, s508, 1 + p(0) + s509, 1 + s198 + s510, z'', append(z'', 0)) :|: s507 >= 0, s507 <= z, s508 >= 0, s508 <= z', s509 >= 0, s509 <= z, s510 >= 0, s510 <= z', s198 >= 0, s198 <= 0 + 1, s53 >= 0, s53 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 11 + x' }-> if(0, 2, s54, s511, s512, 1 + p(x) + s513, 1 + s199 + s514, z'', append(z'', x'')) :|: s511 >= 0, s511 <= z, s512 >= 0, s512 <= z', s513 >= 0, s513 <= z, s514 >= 0, s514 <= z', s199 >= 0, s199 <= x' + 1, s54 >= 0, s54 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' }-> if(0, 2, s55, s515, s516, 1 + p(x) + s517, 1 + s200 + s518, z'', append(z'', 0)) :|: s515 >= 0, s515 <= z, s516 >= 0, s516 <= z', s517 >= 0, s517 <= z, s518 >= 0, s518 <= z', s200 >= 0, s200 <= x' + 1, s55 >= 0, s55 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 }-> if(0, 2, s56, s519, s520, 1 + p(x) + s521, 1 + s201 + s522, z'', append(z'', x')) :|: s519 >= 0, s519 <= z, s520 >= 0, s520 <= z', s521 >= 0, s521 <= z, s522 >= 0, s522 <= z', s201 >= 0, s201 <= 0 + 1, s56 >= 0, s56 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 }-> if(0, 2, s57, s523, s524, 1 + p(x) + s525, 1 + s202 + s526, z'', append(z'', 0)) :|: s523 >= 0, s523 <= z, s524 >= 0, s524 <= z', s525 >= 0, s525 <= z, s526 >= 0, s526 <= z', s202 >= 0, s202 <= 0 + 1, s57 >= 0, s57 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 10 + x }-> if(0, 2, s58, s527, s528, 1 + p(0) + s529, 1 + s203 + s530, z'', append(z'', x')) :|: s527 >= 0, s527 <= z, s528 >= 0, s528 <= z', s529 >= 0, s529 <= z, s530 >= 0, s530 <= z', s203 >= 0, s203 <= x + 1, s58 >= 0, s58 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 + x }-> if(0, 2, s59, s531, s532, 1 + p(0) + s533, 1 + s204 + s534, z'', append(z'', 0)) :|: s531 >= 0, s531 <= z, s532 >= 0, s532 <= z', s533 >= 0, s533 <= z, s534 >= 0, s534 <= z', s204 >= 0, s204 <= x + 1, s59 >= 0, s59 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 9 }-> if(0, 2, s60, s535, s536, 1 + p(0) + s537, 1 + s205 + s538, z'', append(z'', x)) :|: s535 >= 0, s535 <= z, s536 >= 0, s536 <= z', s537 >= 0, s537 <= z, s538 >= 0, s538 <= z', s205 >= 0, s205 <= 0 + 1, s60 >= 0, s60 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 8 }-> if(0, 2, s61, s539, s540, 1 + p(0) + s541, 1 + s206 + s542, z'', append(z'', 0)) :|: s539 >= 0, s539 <= z, s540 >= 0, s540 <= z', s541 >= 0, s541 <= z, s542 >= 0, s542 <= z', s206 >= 0, s206 <= 0 + 1, s61 >= 0, s61 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 addLists(z, z', z'') -{ 12 + x1 }-> if(0, 1, s78, s607, s608, 1 + p(x'') + s609, 1 + s223 + s610, z'', append(z'', x2)) :|: s607 >= 0, s607 <= z, s608 >= 0, s608 <= z', s609 >= 0, s609 <= z, s610 >= 0, s610 <= z', s223 >= 0, s223 <= x1 + 1, s78 >= 0, s78 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 11 + x1 }-> if(0, 1, s79, s611, s612, 1 + p(x'') + s613, 1 + s224 + s614, z'', append(z'', 0)) :|: s611 >= 0, s611 <= z, s612 >= 0, s612 <= z', s613 >= 0, s613 <= z, s614 >= 0, s614 <= z', s224 >= 0, s224 <= x1 + 1, s79 >= 0, s79 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 }-> if(0, 1, s80, s615, s616, 1 + p(x'') + s617, 1 + s225 + s618, z'', append(z'', x1)) :|: s615 >= 0, s615 <= z, s616 >= 0, s616 <= z', s617 >= 0, s617 <= z, s618 >= 0, s618 <= z', s225 >= 0, s225 <= 0 + 1, s80 >= 0, s80 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 10 }-> if(0, 1, s81, s619, s620, 1 + p(x'') + s621, 1 + s226 + s622, z'', append(z'', 0)) :|: s619 >= 0, s619 <= z, s620 >= 0, s620 <= z', s621 >= 0, s621 <= z, s622 >= 0, s622 <= z', s226 >= 0, s226 <= 0 + 1, s81 >= 0, s81 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x'' }-> if(0, 1, s82, s623, s624, 1 + p(0) + s625, 1 + s227 + s626, z'', append(z'', x1)) :|: s623 >= 0, s623 <= z, s624 >= 0, s624 <= z', s625 >= 0, s625 <= z, s626 >= 0, s626 <= z', s227 >= 0, s227 <= x'' + 1, s82 >= 0, s82 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 10 + x'' }-> if(0, 1, s83, s627, s628, 1 + p(0) + s629, 1 + s228 + s630, z'', append(z'', 0)) :|: s627 >= 0, s627 <= z, s628 >= 0, s628 <= z', s629 >= 0, s629 <= z, s630 >= 0, s630 <= z', s228 >= 0, s228 <= x'' + 1, s83 >= 0, s83 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 }-> if(0, 1, s84, s631, s632, 1 + p(0) + s633, 1 + s229 + s634, z'', append(z'', x'')) :|: s631 >= 0, s631 <= z, s632 >= 0, s632 <= z', s633 >= 0, s633 <= z, s634 >= 0, s634 <= z', s229 >= 0, s229 <= 0 + 1, s84 >= 0, s84 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 9 }-> if(0, 1, s85, s635, s636, 1 + p(0) + s637, 1 + s230 + s638, z'', append(z'', 0)) :|: s635 >= 0, s635 <= z, s636 >= 0, s636 <= z', s637 >= 0, s637 <= z, s638 >= 0, s638 <= z', s230 >= 0, s230 <= 0 + 1, s85 >= 0, s85 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x'' }-> if(0, 1, s86, s639, s640, 1 + p(x') + s641, 1 + s231 + s642, z'', append(z'', x1)) :|: s639 >= 0, s639 <= z, s640 >= 0, s640 <= z', s641 >= 0, s641 <= z, s642 >= 0, s642 <= z', s231 >= 0, s231 <= x'' + 1, s86 >= 0, s86 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 10 + x'' }-> if(0, 1, s87, s643, s644, 1 + p(x') + s645, 1 + s232 + s646, z'', append(z'', 0)) :|: s643 >= 0, s643 <= z, s644 >= 0, s644 <= z', s645 >= 0, s645 <= z, s646 >= 0, s646 <= z', s232 >= 0, s232 <= x'' + 1, s87 >= 0, s87 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 }-> if(0, 1, s88, s647, s648, 1 + p(x') + s649, 1 + s233 + s650, z'', append(z'', x'')) :|: s647 >= 0, s647 <= z, s648 >= 0, s648 <= z', s649 >= 0, s649 <= z, s650 >= 0, s650 <= z', s233 >= 0, s233 <= 0 + 1, s88 >= 0, s88 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 9 }-> if(0, 1, s89, s651, s652, 1 + p(x') + s653, 1 + s234 + s654, z'', append(z'', 0)) :|: s651 >= 0, s651 <= z, s652 >= 0, s652 <= z', s653 >= 0, s653 <= z, s654 >= 0, s654 <= z', s234 >= 0, s234 <= 0 + 1, s89 >= 0, s89 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + x' }-> if(0, 1, s90, s655, s656, 1 + p(0) + s657, 1 + s235 + s658, z'', append(z'', x'')) :|: s655 >= 0, s655 <= z, s656 >= 0, s656 <= z', s657 >= 0, s657 <= z, s658 >= 0, s658 <= z', s235 >= 0, s235 <= x' + 1, s90 >= 0, s90 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 9 + x' }-> if(0, 1, s91, s659, s660, 1 + p(0) + s661, 1 + s236 + s662, z'', append(z'', 0)) :|: s659 >= 0, s659 <= z, s660 >= 0, s660 <= z', s661 >= 0, s661 <= z, s662 >= 0, s662 <= z', s236 >= 0, s236 <= x' + 1, s91 >= 0, s91 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 }-> if(0, 1, s92, s663, s664, 1 + p(0) + s665, 1 + s237 + s666, z'', append(z'', x')) :|: s663 >= 0, s663 <= z, s664 >= 0, s664 <= z', s665 >= 0, s665 <= z, s666 >= 0, s666 <= z', s237 >= 0, s237 <= 0 + 1, s92 >= 0, s92 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 8 }-> if(0, 1, s93, s667, s668, 1 + p(0) + s669, 1 + s238 + s670, z'', append(z'', 0)) :|: s667 >= 0, s667 <= z, s668 >= 0, s668 <= z', s669 >= 0, s669 <= z, s670 >= 0, s670 <= z', s238 >= 0, s238 <= 0 + 1, s93 >= 0, s93 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 11 + x'' }-> if(0, 0, s62, s543, s544, 1 + p(x') + s545, 1 + s207 + s546, z'', append(z'', x1)) :|: s543 >= 0, s543 <= z, s544 >= 0, s544 <= z', s545 >= 0, s545 <= z, s546 >= 0, s546 <= z', s207 >= 0, s207 <= x'' + 1, s62 >= 0, s62 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 10 + x'' }-> if(0, 0, s63, s547, s548, 1 + p(x') + s549, 1 + s208 + s550, z'', append(z'', 0)) :|: s547 >= 0, s547 <= z, s548 >= 0, s548 <= z', s549 >= 0, s549 <= z, s550 >= 0, s550 <= z', s208 >= 0, s208 <= x'' + 1, s63 >= 0, s63 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 }-> if(0, 0, s64, s551, s552, 1 + p(x') + s553, 1 + s209 + s554, z'', append(z'', x'')) :|: s551 >= 0, s551 <= z, s552 >= 0, s552 <= z', s553 >= 0, s553 <= z, s554 >= 0, s554 <= z', s209 >= 0, s209 <= 0 + 1, s64 >= 0, s64 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 9 }-> if(0, 0, s65, s555, s556, 1 + p(x') + s557, 1 + s210 + s558, z'', append(z'', 0)) :|: s555 >= 0, s555 <= z, s556 >= 0, s556 <= z', s557 >= 0, s557 <= z, s558 >= 0, s558 <= z', s210 >= 0, s210 <= 0 + 1, s65 >= 0, s65 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + x' }-> if(0, 0, s66, s559, s560, 1 + p(0) + s561, 1 + s211 + s562, z'', append(z'', x'')) :|: s559 >= 0, s559 <= z, s560 >= 0, s560 <= z', s561 >= 0, s561 <= z, s562 >= 0, s562 <= z', s211 >= 0, s211 <= x' + 1, s66 >= 0, s66 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 9 + x' }-> if(0, 0, s67, s563, s564, 1 + p(0) + s565, 1 + s212 + s566, z'', append(z'', 0)) :|: s563 >= 0, s563 <= z, s564 >= 0, s564 <= z', s565 >= 0, s565 <= z, s566 >= 0, s566 <= z', s212 >= 0, s212 <= x' + 1, s67 >= 0, s67 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 }-> if(0, 0, s68, s567, s568, 1 + p(0) + s569, 1 + s213 + s570, z'', append(z'', x')) :|: s567 >= 0, s567 <= z, s568 >= 0, s568 <= z', s569 >= 0, s569 <= z, s570 >= 0, s570 <= z', s213 >= 0, s213 <= 0 + 1, s68 >= 0, s68 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 8 }-> if(0, 0, s69, s571, s572, 1 + p(0) + s573, 1 + s214 + s574, z'', append(z'', 0)) :|: s571 >= 0, s571 <= z, s572 >= 0, s572 <= z', s573 >= 0, s573 <= z, s574 >= 0, s574 <= z', s214 >= 0, s214 <= 0 + 1, s69 >= 0, s69 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 10 + x' }-> if(0, 0, s70, s575, s576, 1 + p(x) + s577, 1 + s215 + s578, z'', append(z'', x'')) :|: s575 >= 0, s575 <= z, s576 >= 0, s576 <= z', s577 >= 0, s577 <= z, s578 >= 0, s578 <= z', s215 >= 0, s215 <= x' + 1, s70 >= 0, s70 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 9 + x' }-> if(0, 0, s71, s579, s580, 1 + p(x) + s581, 1 + s216 + s582, z'', append(z'', 0)) :|: s579 >= 0, s579 <= z, s580 >= 0, s580 <= z', s581 >= 0, s581 <= z, s582 >= 0, s582 <= z', s216 >= 0, s216 <= x' + 1, s71 >= 0, s71 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 }-> if(0, 0, s72, s583, s584, 1 + p(x) + s585, 1 + s217 + s586, z'', append(z'', x')) :|: s583 >= 0, s583 <= z, s584 >= 0, s584 <= z', s585 >= 0, s585 <= z, s586 >= 0, s586 <= z', s217 >= 0, s217 <= 0 + 1, s72 >= 0, s72 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 8 }-> if(0, 0, s73, s587, s588, 1 + p(x) + s589, 1 + s218 + s590, z'', append(z'', 0)) :|: s587 >= 0, s587 <= z, s588 >= 0, s588 <= z', s589 >= 0, s589 <= z, s590 >= 0, s590 <= z', s218 >= 0, s218 <= 0 + 1, s73 >= 0, s73 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 9 + x }-> if(0, 0, s74, s591, s592, 1 + p(0) + s593, 1 + s219 + s594, z'', append(z'', x')) :|: s591 >= 0, s591 <= z, s592 >= 0, s592 <= z', s593 >= 0, s593 <= z, s594 >= 0, s594 <= z', s219 >= 0, s219 <= x + 1, s74 >= 0, s74 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 8 + x }-> if(0, 0, s75, s595, s596, 1 + p(0) + s597, 1 + s220 + s598, z'', append(z'', 0)) :|: s595 >= 0, s595 <= z, s596 >= 0, s596 <= z', s597 >= 0, s597 <= z, s598 >= 0, s598 <= z', s220 >= 0, s220 <= x + 1, s75 >= 0, s75 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 8 }-> if(0, 0, s76, s599, s600, 1 + p(0) + s601, 1 + s221 + s602, z'', append(z'', x)) :|: s599 >= 0, s599 <= z, s600 >= 0, s600 <= z', s601 >= 0, s601 <= z, s602 >= 0, s602 <= z', s221 >= 0, s221 <= 0 + 1, s76 >= 0, s76 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 7 }-> if(0, 0, s77, s603, s604, 1 + p(0) + s605, 1 + s222 + s606, z'', append(z'', 0)) :|: s603 >= 0, s603 <= z, s604 >= 0, s604 <= z', s605 >= 0, s605 <= z, s606 >= 0, s606 <= z', s222 >= 0, s222 <= 0 + 1, s77 >= 0, s77 <= 2, z >= 0, z' >= 0, z'' >= 0 append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 append(z, z') -{ 1 }-> 1 + y + append(ys, z') :|: ys >= 0, y >= 0, z' >= 0, z = 1 + y + ys append(z, z') -{ 1 }-> 1 + z' + 1 :|: z = 1, z' >= 0 head(z) -{ 1 }-> x :|: z = 1 + x + xs, xs >= 0, x >= 0 head(z) -{ 0 }-> 0 :|: z >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> z5 :|: z1 >= 0, z' = 2, z5 >= 0, z6 >= 0, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z1, z2, z6) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 2, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z3, z4, z5) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 1, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z5 >= 0, z6 >= 0, z' = 1, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z' = 2, z = 1, z5 >= 0, z6 >= 0, z4 >= 0, z'' >= 0, z3 >= 0, z2 >= 0 inc(z) -{ 1 + z }-> 1 + s142 :|: s142 >= 0, s142 <= z - 1 + 1, z - 1 >= 0 inc(z) -{ 1 }-> 1 + 0 :|: z = 0 isEmpty(z) -{ 1 }-> 2 :|: z = 1 isEmpty(z) -{ 1 }-> 1 :|: z = 1 + x + xs, xs >= 0, x >= 0 isEmpty(z) -{ 0 }-> 0 :|: z >= 0 isZero(z) -{ 1 }-> 2 :|: z = 0 isZero(z) -{ 1 }-> 1 :|: z - 1 >= 0 p(z) -{ 1 }-> 0 :|: z = 1 + 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 1 }-> 1 + p(1 + (z - 2)) :|: z - 2 >= 0 tail(z) -{ 1 }-> xs :|: z = 1 + x + xs, xs >= 0, x >= 0 tail(z) -{ 1 }-> 1 :|: z = 1 tail(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {append}, {head}, {p}, {addLists,if}, {addList} Previous analysis results are: isEmpty: runtime: O(1) [1], size: O(1) [2] isZero: runtime: O(1) [1], size: O(1) [2] inc: runtime: O(n^1) [1 + z], size: O(n^1) [1 + z] tail: runtime: O(1) [1], size: O(n^1) [z] append: runtime: ?, size: O(n^1) [1 + z + z'] ---------------------------------------- (49) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using KoAT for: append after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 1 + z ---------------------------------------- (50) Obligation: Complexity RNTS consisting of the following rules: addList(z, z') -{ 1 }-> addLists(z, z', 1) :|: z >= 0, z' >= 0 addLists(z, z', z'') -{ 13 + x'' }-> if(2, 2, s, s287, s288, 1 + p(x') + s289, 1 + s143 + s290, z'', append(z'', x1)) :|: s287 >= 0, s287 <= z, s288 >= 0, s288 <= z', s289 >= 0, s289 <= z, s290 >= 0, s290 <= z', s143 >= 0, s143 <= x'' + 1, s >= 0, s <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' }-> if(2, 2, s', s291, s292, 1 + p(x') + s293, 1 + s144 + s294, z'', append(z'', 0)) :|: s291 >= 0, s291 <= z, s292 >= 0, s292 <= z', s293 >= 0, s293 <= z, s294 >= 0, s294 <= z', s144 >= 0, s144 <= x'' + 1, s' >= 0, s' <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 }-> if(2, 2, s'', s295, s296, 1 + p(x') + s297, 1 + s145 + s298, z'', append(z'', x'')) :|: s295 >= 0, s295 <= z, s296 >= 0, s296 <= z', s297 >= 0, s297 <= z, s298 >= 0, s298 <= z', s145 >= 0, s145 <= 0 + 1, s'' >= 0, s'' <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 }-> if(2, 2, s1, s299, s300, 1 + p(x') + s301, 1 + s146 + s302, z'', append(z'', 0)) :|: s299 >= 0, s299 <= z, s300 >= 0, s300 <= z', s301 >= 0, s301 <= z, s302 >= 0, s302 <= z', s146 >= 0, s146 <= 0 + 1, s1 >= 0, s1 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x }-> if(2, 2, s10, s335, s336, 1 + p(0) + s337, 1 + s155 + s338, z'', append(z'', x')) :|: s335 >= 0, s335 <= z, s336 >= 0, s336 <= z', s337 >= 0, s337 <= z, s338 >= 0, s338 <= z', s155 >= 0, s155 <= x + 1, s10 >= 0, s10 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + x }-> if(2, 2, s11, s339, s340, 1 + p(0) + s341, 1 + s156 + s342, z'', append(z'', 0)) :|: s339 >= 0, s339 <= z, s340 >= 0, s340 <= z', s341 >= 0, s341 <= z, s342 >= 0, s342 <= z', s156 >= 0, s156 <= x + 1, s11 >= 0, s11 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 10 }-> if(2, 2, s12, s343, s344, 1 + p(0) + s345, 1 + s157 + s346, z'', append(z'', x)) :|: s343 >= 0, s343 <= z, s344 >= 0, s344 <= z', s345 >= 0, s345 <= z, s346 >= 0, s346 <= z', s157 >= 0, s157 <= 0 + 1, s12 >= 0, s12 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 9 }-> if(2, 2, s13, s347, s348, 1 + p(0) + s349, 1 + s158 + s350, z'', append(z'', 0)) :|: s347 >= 0, s347 <= z, s348 >= 0, s348 <= z', s349 >= 0, s349 <= z, s350 >= 0, s350 <= z', s158 >= 0, s158 <= 0 + 1, s13 >= 0, s13 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 addLists(z, z', z'') -{ 12 + x' }-> if(2, 2, s2, s303, s304, 1 + p(0) + s305, 1 + s147 + s306, z'', append(z'', x'')) :|: s303 >= 0, s303 <= z, s304 >= 0, s304 <= z', s305 >= 0, s305 <= z, s306 >= 0, s306 <= z', s147 >= 0, s147 <= x' + 1, s2 >= 0, s2 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' }-> if(2, 2, s3, s307, s308, 1 + p(0) + s309, 1 + s148 + s310, z'', append(z'', 0)) :|: s307 >= 0, s307 <= z, s308 >= 0, s308 <= z', s309 >= 0, s309 <= z, s310 >= 0, s310 <= z', s148 >= 0, s148 <= x' + 1, s3 >= 0, s3 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 }-> if(2, 2, s4, s311, s312, 1 + p(0) + s313, 1 + s149 + s314, z'', append(z'', x')) :|: s311 >= 0, s311 <= z, s312 >= 0, s312 <= z', s313 >= 0, s313 <= z, s314 >= 0, s314 <= z', s149 >= 0, s149 <= 0 + 1, s4 >= 0, s4 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 }-> if(2, 2, s5, s315, s316, 1 + p(0) + s317, 1 + s150 + s318, z'', append(z'', 0)) :|: s315 >= 0, s315 <= z, s316 >= 0, s316 <= z', s317 >= 0, s317 <= z, s318 >= 0, s318 <= z', s150 >= 0, s150 <= 0 + 1, s5 >= 0, s5 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 12 + x' }-> if(2, 2, s6, s319, s320, 1 + p(x) + s321, 1 + s151 + s322, z'', append(z'', x'')) :|: s319 >= 0, s319 <= z, s320 >= 0, s320 <= z', s321 >= 0, s321 <= z, s322 >= 0, s322 <= z', s151 >= 0, s151 <= x' + 1, s6 >= 0, s6 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' }-> if(2, 2, s7, s323, s324, 1 + p(x) + s325, 1 + s152 + s326, z'', append(z'', 0)) :|: s323 >= 0, s323 <= z, s324 >= 0, s324 <= z', s325 >= 0, s325 <= z, s326 >= 0, s326 <= z', s152 >= 0, s152 <= x' + 1, s7 >= 0, s7 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 }-> if(2, 2, s8, s327, s328, 1 + p(x) + s329, 1 + s153 + s330, z'', append(z'', x')) :|: s327 >= 0, s327 <= z, s328 >= 0, s328 <= z', s329 >= 0, s329 <= z, s330 >= 0, s330 <= z', s153 >= 0, s153 <= 0 + 1, s8 >= 0, s8 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 }-> if(2, 2, s9, s331, s332, 1 + p(x) + s333, 1 + s154 + s334, z'', append(z'', 0)) :|: s331 >= 0, s331 <= z, s332 >= 0, s332 <= z', s333 >= 0, s333 <= z, s334 >= 0, s334 <= z', s154 >= 0, s154 <= 0 + 1, s9 >= 0, s9 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 13 + x1 }-> if(2, 1, s30, s415, s416, 1 + p(x'') + s417, 1 + s175 + s418, z'', append(z'', x2)) :|: s415 >= 0, s415 <= z, s416 >= 0, s416 <= z', s417 >= 0, s417 <= z, s418 >= 0, s418 <= z', s175 >= 0, s175 <= x1 + 1, s30 >= 0, s30 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 + x1 }-> if(2, 1, s31, s419, s420, 1 + p(x'') + s421, 1 + s176 + s422, z'', append(z'', 0)) :|: s419 >= 0, s419 <= z, s420 >= 0, s420 <= z', s421 >= 0, s421 <= z, s422 >= 0, s422 <= z', s176 >= 0, s176 <= x1 + 1, s31 >= 0, s31 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 }-> if(2, 1, s32, s423, s424, 1 + p(x'') + s425, 1 + s177 + s426, z'', append(z'', x1)) :|: s423 >= 0, s423 <= z, s424 >= 0, s424 <= z', s425 >= 0, s425 <= z, s426 >= 0, s426 <= z', s177 >= 0, s177 <= 0 + 1, s32 >= 0, s32 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 }-> if(2, 1, s33, s427, s428, 1 + p(x'') + s429, 1 + s178 + s430, z'', append(z'', 0)) :|: s427 >= 0, s427 <= z, s428 >= 0, s428 <= z', s429 >= 0, s429 <= z, s430 >= 0, s430 <= z', s178 >= 0, s178 <= 0 + 1, s33 >= 0, s33 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x'' }-> if(2, 1, s34, s431, s432, 1 + p(0) + s433, 1 + s179 + s434, z'', append(z'', x1)) :|: s431 >= 0, s431 <= z, s432 >= 0, s432 <= z', s433 >= 0, s433 <= z, s434 >= 0, s434 <= z', s179 >= 0, s179 <= x'' + 1, s34 >= 0, s34 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' }-> if(2, 1, s35, s435, s436, 1 + p(0) + s437, 1 + s180 + s438, z'', append(z'', 0)) :|: s435 >= 0, s435 <= z, s436 >= 0, s436 <= z', s437 >= 0, s437 <= z, s438 >= 0, s438 <= z', s180 >= 0, s180 <= x'' + 1, s35 >= 0, s35 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 }-> if(2, 1, s36, s439, s440, 1 + p(0) + s441, 1 + s181 + s442, z'', append(z'', x'')) :|: s439 >= 0, s439 <= z, s440 >= 0, s440 <= z', s441 >= 0, s441 <= z, s442 >= 0, s442 <= z', s181 >= 0, s181 <= 0 + 1, s36 >= 0, s36 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 }-> if(2, 1, s37, s443, s444, 1 + p(0) + s445, 1 + s182 + s446, z'', append(z'', 0)) :|: s443 >= 0, s443 <= z, s444 >= 0, s444 <= z', s445 >= 0, s445 <= z, s446 >= 0, s446 <= z', s182 >= 0, s182 <= 0 + 1, s37 >= 0, s37 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x'' }-> if(2, 1, s38, s447, s448, 1 + p(x') + s449, 1 + s183 + s450, z'', append(z'', x1)) :|: s447 >= 0, s447 <= z, s448 >= 0, s448 <= z', s449 >= 0, s449 <= z, s450 >= 0, s450 <= z', s183 >= 0, s183 <= x'' + 1, s38 >= 0, s38 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' }-> if(2, 1, s39, s451, s452, 1 + p(x') + s453, 1 + s184 + s454, z'', append(z'', 0)) :|: s451 >= 0, s451 <= z, s452 >= 0, s452 <= z', s453 >= 0, s453 <= z, s454 >= 0, s454 <= z', s184 >= 0, s184 <= x'' + 1, s39 >= 0, s39 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 }-> if(2, 1, s40, s455, s456, 1 + p(x') + s457, 1 + s185 + s458, z'', append(z'', x'')) :|: s455 >= 0, s455 <= z, s456 >= 0, s456 <= z', s457 >= 0, s457 <= z, s458 >= 0, s458 <= z', s185 >= 0, s185 <= 0 + 1, s40 >= 0, s40 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 }-> if(2, 1, s41, s459, s460, 1 + p(x') + s461, 1 + s186 + s462, z'', append(z'', 0)) :|: s459 >= 0, s459 <= z, s460 >= 0, s460 <= z', s461 >= 0, s461 <= z, s462 >= 0, s462 <= z', s186 >= 0, s186 <= 0 + 1, s41 >= 0, s41 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x' }-> if(2, 1, s42, s463, s464, 1 + p(0) + s465, 1 + s187 + s466, z'', append(z'', x'')) :|: s463 >= 0, s463 <= z, s464 >= 0, s464 <= z', s465 >= 0, s465 <= z, s466 >= 0, s466 <= z', s187 >= 0, s187 <= x' + 1, s42 >= 0, s42 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' }-> if(2, 1, s43, s467, s468, 1 + p(0) + s469, 1 + s188 + s470, z'', append(z'', 0)) :|: s467 >= 0, s467 <= z, s468 >= 0, s468 <= z', s469 >= 0, s469 <= z, s470 >= 0, s470 <= z', s188 >= 0, s188 <= x' + 1, s43 >= 0, s43 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 }-> if(2, 1, s44, s471, s472, 1 + p(0) + s473, 1 + s189 + s474, z'', append(z'', x')) :|: s471 >= 0, s471 <= z, s472 >= 0, s472 <= z', s473 >= 0, s473 <= z, s474 >= 0, s474 <= z', s189 >= 0, s189 <= 0 + 1, s44 >= 0, s44 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 }-> if(2, 1, s45, s475, s476, 1 + p(0) + s477, 1 + s190 + s478, z'', append(z'', 0)) :|: s475 >= 0, s475 <= z, s476 >= 0, s476 <= z', s477 >= 0, s477 <= z, s478 >= 0, s478 <= z', s190 >= 0, s190 <= 0 + 1, s45 >= 0, s45 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 12 + x'' }-> if(2, 0, s14, s351, s352, 1 + p(x') + s353, 1 + s159 + s354, z'', append(z'', x1)) :|: s351 >= 0, s351 <= z, s352 >= 0, s352 <= z', s353 >= 0, s353 <= z, s354 >= 0, s354 <= z', s159 >= 0, s159 <= x'' + 1, s14 >= 0, s14 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' }-> if(2, 0, s15, s355, s356, 1 + p(x') + s357, 1 + s160 + s358, z'', append(z'', 0)) :|: s355 >= 0, s355 <= z, s356 >= 0, s356 <= z', s357 >= 0, s357 <= z, s358 >= 0, s358 <= z', s160 >= 0, s160 <= x'' + 1, s15 >= 0, s15 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 }-> if(2, 0, s16, s359, s360, 1 + p(x') + s361, 1 + s161 + s362, z'', append(z'', x'')) :|: s359 >= 0, s359 <= z, s360 >= 0, s360 <= z', s361 >= 0, s361 <= z, s362 >= 0, s362 <= z', s161 >= 0, s161 <= 0 + 1, s16 >= 0, s16 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 }-> if(2, 0, s17, s363, s364, 1 + p(x') + s365, 1 + s162 + s366, z'', append(z'', 0)) :|: s363 >= 0, s363 <= z, s364 >= 0, s364 <= z', s365 >= 0, s365 <= z, s366 >= 0, s366 <= z', s162 >= 0, s162 <= 0 + 1, s17 >= 0, s17 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x' }-> if(2, 0, s18, s367, s368, 1 + p(0) + s369, 1 + s163 + s370, z'', append(z'', x'')) :|: s367 >= 0, s367 <= z, s368 >= 0, s368 <= z', s369 >= 0, s369 <= z, s370 >= 0, s370 <= z', s163 >= 0, s163 <= x' + 1, s18 >= 0, s18 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' }-> if(2, 0, s19, s371, s372, 1 + p(0) + s373, 1 + s164 + s374, z'', append(z'', 0)) :|: s371 >= 0, s371 <= z, s372 >= 0, s372 <= z', s373 >= 0, s373 <= z, s374 >= 0, s374 <= z', s164 >= 0, s164 <= x' + 1, s19 >= 0, s19 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 }-> if(2, 0, s20, s375, s376, 1 + p(0) + s377, 1 + s165 + s378, z'', append(z'', x')) :|: s375 >= 0, s375 <= z, s376 >= 0, s376 <= z', s377 >= 0, s377 <= z, s378 >= 0, s378 <= z', s165 >= 0, s165 <= 0 + 1, s20 >= 0, s20 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 }-> if(2, 0, s21, s379, s380, 1 + p(0) + s381, 1 + s166 + s382, z'', append(z'', 0)) :|: s379 >= 0, s379 <= z, s380 >= 0, s380 <= z', s381 >= 0, s381 <= z, s382 >= 0, s382 <= z', s166 >= 0, s166 <= 0 + 1, s21 >= 0, s21 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 11 + x' }-> if(2, 0, s22, s383, s384, 1 + p(x) + s385, 1 + s167 + s386, z'', append(z'', x'')) :|: s383 >= 0, s383 <= z, s384 >= 0, s384 <= z', s385 >= 0, s385 <= z, s386 >= 0, s386 <= z', s167 >= 0, s167 <= x' + 1, s22 >= 0, s22 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' }-> if(2, 0, s23, s387, s388, 1 + p(x) + s389, 1 + s168 + s390, z'', append(z'', 0)) :|: s387 >= 0, s387 <= z, s388 >= 0, s388 <= z', s389 >= 0, s389 <= z, s390 >= 0, s390 <= z', s168 >= 0, s168 <= x' + 1, s23 >= 0, s23 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 }-> if(2, 0, s24, s391, s392, 1 + p(x) + s393, 1 + s169 + s394, z'', append(z'', x')) :|: s391 >= 0, s391 <= z, s392 >= 0, s392 <= z', s393 >= 0, s393 <= z, s394 >= 0, s394 <= z', s169 >= 0, s169 <= 0 + 1, s24 >= 0, s24 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 }-> if(2, 0, s25, s395, s396, 1 + p(x) + s397, 1 + s170 + s398, z'', append(z'', 0)) :|: s395 >= 0, s395 <= z, s396 >= 0, s396 <= z', s397 >= 0, s397 <= z, s398 >= 0, s398 <= z', s170 >= 0, s170 <= 0 + 1, s25 >= 0, s25 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 10 + x }-> if(2, 0, s26, s399, s400, 1 + p(0) + s401, 1 + s171 + s402, z'', append(z'', x')) :|: s399 >= 0, s399 <= z, s400 >= 0, s400 <= z', s401 >= 0, s401 <= z, s402 >= 0, s402 <= z', s171 >= 0, s171 <= x + 1, s26 >= 0, s26 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 + x }-> if(2, 0, s27, s403, s404, 1 + p(0) + s405, 1 + s172 + s406, z'', append(z'', 0)) :|: s403 >= 0, s403 <= z, s404 >= 0, s404 <= z', s405 >= 0, s405 <= z, s406 >= 0, s406 <= z', s172 >= 0, s172 <= x + 1, s27 >= 0, s27 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 9 }-> if(2, 0, s28, s407, s408, 1 + p(0) + s409, 1 + s173 + s410, z'', append(z'', x)) :|: s407 >= 0, s407 <= z, s408 >= 0, s408 <= z', s409 >= 0, s409 <= z, s410 >= 0, s410 <= z', s173 >= 0, s173 <= 0 + 1, s28 >= 0, s28 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 8 }-> if(2, 0, s29, s411, s412, 1 + p(0) + s413, 1 + s174 + s414, z'', append(z'', 0)) :|: s411 >= 0, s411 <= z, s412 >= 0, s412 <= z', s413 >= 0, s413 <= z, s414 >= 0, s414 <= z', s174 >= 0, s174 <= 0 + 1, s29 >= 0, s29 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 addLists(z, z', z'') -{ 11 }-> if(1, 2, s100, s695, s696, 1 + p(0) + s697, 1 + s245 + s698, z'', append(z'', x'')) :|: s695 >= 0, s695 <= z, s696 >= 0, s696 <= z', s697 >= 0, s697 <= z, s698 >= 0, s698 <= z', s245 >= 0, s245 <= 0 + 1, s100 >= 0, s100 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 }-> if(1, 2, s101, s699, s700, 1 + p(0) + s701, 1 + s246 + s702, z'', append(z'', 0)) :|: s699 >= 0, s699 <= z, s700 >= 0, s700 <= z', s701 >= 0, s701 <= z, s702 >= 0, s702 <= z', s246 >= 0, s246 <= 0 + 1, s101 >= 0, s101 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x'' }-> if(1, 2, s102, s703, s704, 1 + p(x') + s705, 1 + s247 + s706, z'', append(z'', x1)) :|: s703 >= 0, s703 <= z, s704 >= 0, s704 <= z', s705 >= 0, s705 <= z, s706 >= 0, s706 <= z', s247 >= 0, s247 <= x'' + 1, s102 >= 0, s102 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' }-> if(1, 2, s103, s707, s708, 1 + p(x') + s709, 1 + s248 + s710, z'', append(z'', 0)) :|: s707 >= 0, s707 <= z, s708 >= 0, s708 <= z', s709 >= 0, s709 <= z, s710 >= 0, s710 <= z', s248 >= 0, s248 <= x'' + 1, s103 >= 0, s103 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 }-> if(1, 2, s104, s711, s712, 1 + p(x') + s713, 1 + s249 + s714, z'', append(z'', x'')) :|: s711 >= 0, s711 <= z, s712 >= 0, s712 <= z', s713 >= 0, s713 <= z, s714 >= 0, s714 <= z', s249 >= 0, s249 <= 0 + 1, s104 >= 0, s104 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 }-> if(1, 2, s105, s715, s716, 1 + p(x') + s717, 1 + s250 + s718, z'', append(z'', 0)) :|: s715 >= 0, s715 <= z, s716 >= 0, s716 <= z', s717 >= 0, s717 <= z, s718 >= 0, s718 <= z', s250 >= 0, s250 <= 0 + 1, s105 >= 0, s105 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x' }-> if(1, 2, s106, s719, s720, 1 + p(0) + s721, 1 + s251 + s722, z'', append(z'', x'')) :|: s719 >= 0, s719 <= z, s720 >= 0, s720 <= z', s721 >= 0, s721 <= z, s722 >= 0, s722 <= z', s251 >= 0, s251 <= x' + 1, s106 >= 0, s106 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' }-> if(1, 2, s107, s723, s724, 1 + p(0) + s725, 1 + s252 + s726, z'', append(z'', 0)) :|: s723 >= 0, s723 <= z, s724 >= 0, s724 <= z', s725 >= 0, s725 <= z, s726 >= 0, s726 <= z', s252 >= 0, s252 <= x' + 1, s107 >= 0, s107 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 }-> if(1, 2, s108, s727, s728, 1 + p(0) + s729, 1 + s253 + s730, z'', append(z'', x')) :|: s727 >= 0, s727 <= z, s728 >= 0, s728 <= z', s729 >= 0, s729 <= z, s730 >= 0, s730 <= z', s253 >= 0, s253 <= 0 + 1, s108 >= 0, s108 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 }-> if(1, 2, s109, s731, s732, 1 + p(0) + s733, 1 + s254 + s734, z'', append(z'', 0)) :|: s731 >= 0, s731 <= z, s732 >= 0, s732 <= z', s733 >= 0, s733 <= z, s734 >= 0, s734 <= z', s254 >= 0, s254 <= 0 + 1, s109 >= 0, s109 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 addLists(z, z', z'') -{ 13 + x1 }-> if(1, 2, s94, s671, s672, 1 + p(x'') + s673, 1 + s239 + s674, z'', append(z'', x2)) :|: s671 >= 0, s671 <= z, s672 >= 0, s672 <= z', s673 >= 0, s673 <= z, s674 >= 0, s674 <= z', s239 >= 0, s239 <= x1 + 1, s94 >= 0, s94 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 + x1 }-> if(1, 2, s95, s675, s676, 1 + p(x'') + s677, 1 + s240 + s678, z'', append(z'', 0)) :|: s675 >= 0, s675 <= z, s676 >= 0, s676 <= z', s677 >= 0, s677 <= z, s678 >= 0, s678 <= z', s240 >= 0, s240 <= x1 + 1, s95 >= 0, s95 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 }-> if(1, 2, s96, s679, s680, 1 + p(x'') + s681, 1 + s241 + s682, z'', append(z'', x1)) :|: s679 >= 0, s679 <= z, s680 >= 0, s680 <= z', s681 >= 0, s681 <= z, s682 >= 0, s682 <= z', s241 >= 0, s241 <= 0 + 1, s96 >= 0, s96 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 }-> if(1, 2, s97, s683, s684, 1 + p(x'') + s685, 1 + s242 + s686, z'', append(z'', 0)) :|: s683 >= 0, s683 <= z, s684 >= 0, s684 <= z', s685 >= 0, s685 <= z, s686 >= 0, s686 <= z', s242 >= 0, s242 <= 0 + 1, s97 >= 0, s97 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x'' }-> if(1, 2, s98, s687, s688, 1 + p(0) + s689, 1 + s243 + s690, z'', append(z'', x1)) :|: s687 >= 0, s687 <= z, s688 >= 0, s688 <= z', s689 >= 0, s689 <= z, s690 >= 0, s690 <= z', s243 >= 0, s243 <= x'' + 1, s98 >= 0, s98 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' }-> if(1, 2, s99, s691, s692, 1 + p(0) + s693, 1 + s244 + s694, z'', append(z'', 0)) :|: s691 >= 0, s691 <= z, s692 >= 0, s692 <= z', s693 >= 0, s693 <= z, s694 >= 0, s694 <= z', s244 >= 0, s244 <= x'' + 1, s99 >= 0, s99 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + x2 }-> if(1, 1, s126, s799, s800, 1 + p(x1) + s801, 1 + s271 + s802, z'', append(z'', x3)) :|: s799 >= 0, s799 <= z, s800 >= 0, s800 <= z', s801 >= 0, s801 <= z, s802 >= 0, s802 <= z', s271 >= 0, s271 <= x2 + 1, s126 >= 0, s126 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0, z' = 1 + x3 + xs4, xs4 >= 0, x3 >= 0 addLists(z, z', z'') -{ 12 + x2 }-> if(1, 1, s127, s803, s804, 1 + p(x1) + s805, 1 + s272 + s806, z'', append(z'', 0)) :|: s803 >= 0, s803 <= z, s804 >= 0, s804 <= z', s805 >= 0, s805 <= z, s806 >= 0, s806 <= z', s272 >= 0, s272 <= x2 + 1, s127 >= 0, s127 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 }-> if(1, 1, s128, s807, s808, 1 + p(x1) + s809, 1 + s273 + s810, z'', append(z'', x2)) :|: s807 >= 0, s807 <= z, s808 >= 0, s808 <= z', s809 >= 0, s809 <= z, s810 >= 0, s810 <= z', s273 >= 0, s273 <= 0 + 1, s128 >= 0, s128 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 11 }-> if(1, 1, s129, s811, s812, 1 + p(x1) + s813, 1 + s274 + s814, z'', append(z'', 0)) :|: s811 >= 0, s811 <= z, s812 >= 0, s812 <= z', s813 >= 0, s813 <= z, s814 >= 0, s814 <= z', s274 >= 0, s274 <= 0 + 1, s129 >= 0, s129 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x1 }-> if(1, 1, s130, s815, s816, 1 + p(0) + s817, 1 + s275 + s818, z'', append(z'', x2)) :|: s815 >= 0, s815 <= z, s816 >= 0, s816 <= z', s817 >= 0, s817 <= z, s818 >= 0, s818 <= z', s275 >= 0, s275 <= x1 + 1, s130 >= 0, s130 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 11 + x1 }-> if(1, 1, s131, s819, s820, 1 + p(0) + s821, 1 + s276 + s822, z'', append(z'', 0)) :|: s819 >= 0, s819 <= z, s820 >= 0, s820 <= z', s821 >= 0, s821 <= z, s822 >= 0, s822 <= z', s276 >= 0, s276 <= x1 + 1, s131 >= 0, s131 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 }-> if(1, 1, s132, s823, s824, 1 + p(0) + s825, 1 + s277 + s826, z'', append(z'', x1)) :|: s823 >= 0, s823 <= z, s824 >= 0, s824 <= z', s825 >= 0, s825 <= z, s826 >= 0, s826 <= z', s277 >= 0, s277 <= 0 + 1, s132 >= 0, s132 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 10 }-> if(1, 1, s133, s827, s828, 1 + p(0) + s829, 1 + s278 + s830, z'', append(z'', 0)) :|: s827 >= 0, s827 <= z, s828 >= 0, s828 <= z', s829 >= 0, s829 <= z, s830 >= 0, s830 <= z', s278 >= 0, s278 <= 0 + 1, s133 >= 0, s133 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x1 }-> if(1, 1, s134, s831, s832, 1 + p(x'') + s833, 1 + s279 + s834, z'', append(z'', x2)) :|: s831 >= 0, s831 <= z, s832 >= 0, s832 <= z', s833 >= 0, s833 <= z, s834 >= 0, s834 <= z', s279 >= 0, s279 <= x1 + 1, s134 >= 0, s134 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 11 + x1 }-> if(1, 1, s135, s835, s836, 1 + p(x'') + s837, 1 + s280 + s838, z'', append(z'', 0)) :|: s835 >= 0, s835 <= z, s836 >= 0, s836 <= z', s837 >= 0, s837 <= z, s838 >= 0, s838 <= z', s280 >= 0, s280 <= x1 + 1, s135 >= 0, s135 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 }-> if(1, 1, s136, s839, s840, 1 + p(x'') + s841, 1 + s281 + s842, z'', append(z'', x1)) :|: s839 >= 0, s839 <= z, s840 >= 0, s840 <= z', s841 >= 0, s841 <= z, s842 >= 0, s842 <= z', s281 >= 0, s281 <= 0 + 1, s136 >= 0, s136 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 10 }-> if(1, 1, s137, s843, s844, 1 + p(x'') + s845, 1 + s282 + s846, z'', append(z'', 0)) :|: s843 >= 0, s843 <= z, s844 >= 0, s844 <= z', s845 >= 0, s845 <= z, s846 >= 0, s846 <= z', s282 >= 0, s282 <= 0 + 1, s137 >= 0, s137 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x'' }-> if(1, 1, s138, s847, s848, 1 + p(0) + s849, 1 + s283 + s850, z'', append(z'', x1)) :|: s847 >= 0, s847 <= z, s848 >= 0, s848 <= z', s849 >= 0, s849 <= z, s850 >= 0, s850 <= z', s283 >= 0, s283 <= x'' + 1, s138 >= 0, s138 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 10 + x'' }-> if(1, 1, s139, s851, s852, 1 + p(0) + s853, 1 + s284 + s854, z'', append(z'', 0)) :|: s851 >= 0, s851 <= z, s852 >= 0, s852 <= z', s853 >= 0, s853 <= z, s854 >= 0, s854 <= z', s284 >= 0, s284 <= x'' + 1, s139 >= 0, s139 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 }-> if(1, 1, s140, s855, s856, 1 + p(0) + s857, 1 + s285 + s858, z'', append(z'', x'')) :|: s855 >= 0, s855 <= z, s856 >= 0, s856 <= z', s857 >= 0, s857 <= z, s858 >= 0, s858 <= z', s285 >= 0, s285 <= 0 + 1, s140 >= 0, s140 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 9 }-> if(1, 1, s141, s859, s860, 1 + p(0) + s861, 1 + s286 + s862, z'', append(z'', 0)) :|: s859 >= 0, s859 <= z, s860 >= 0, s860 <= z', s861 >= 0, s861 <= z, s862 >= 0, s862 <= z', s286 >= 0, s286 <= 0 + 1, s141 >= 0, s141 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x1 }-> if(1, 0, s110, s735, s736, 1 + p(x'') + s737, 1 + s255 + s738, z'', append(z'', x2)) :|: s735 >= 0, s735 <= z, s736 >= 0, s736 <= z', s737 >= 0, s737 <= z, s738 >= 0, s738 <= z', s255 >= 0, s255 <= x1 + 1, s110 >= 0, s110 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 11 + x1 }-> if(1, 0, s111, s739, s740, 1 + p(x'') + s741, 1 + s256 + s742, z'', append(z'', 0)) :|: s739 >= 0, s739 <= z, s740 >= 0, s740 <= z', s741 >= 0, s741 <= z, s742 >= 0, s742 <= z', s256 >= 0, s256 <= x1 + 1, s111 >= 0, s111 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 }-> if(1, 0, s112, s743, s744, 1 + p(x'') + s745, 1 + s257 + s746, z'', append(z'', x1)) :|: s743 >= 0, s743 <= z, s744 >= 0, s744 <= z', s745 >= 0, s745 <= z, s746 >= 0, s746 <= z', s257 >= 0, s257 <= 0 + 1, s112 >= 0, s112 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 10 }-> if(1, 0, s113, s747, s748, 1 + p(x'') + s749, 1 + s258 + s750, z'', append(z'', 0)) :|: s747 >= 0, s747 <= z, s748 >= 0, s748 <= z', s749 >= 0, s749 <= z, s750 >= 0, s750 <= z', s258 >= 0, s258 <= 0 + 1, s113 >= 0, s113 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x'' }-> if(1, 0, s114, s751, s752, 1 + p(0) + s753, 1 + s259 + s754, z'', append(z'', x1)) :|: s751 >= 0, s751 <= z, s752 >= 0, s752 <= z', s753 >= 0, s753 <= z, s754 >= 0, s754 <= z', s259 >= 0, s259 <= x'' + 1, s114 >= 0, s114 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 10 + x'' }-> if(1, 0, s115, s755, s756, 1 + p(0) + s757, 1 + s260 + s758, z'', append(z'', 0)) :|: s755 >= 0, s755 <= z, s756 >= 0, s756 <= z', s757 >= 0, s757 <= z, s758 >= 0, s758 <= z', s260 >= 0, s260 <= x'' + 1, s115 >= 0, s115 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 }-> if(1, 0, s116, s759, s760, 1 + p(0) + s761, 1 + s261 + s762, z'', append(z'', x'')) :|: s759 >= 0, s759 <= z, s760 >= 0, s760 <= z', s761 >= 0, s761 <= z, s762 >= 0, s762 <= z', s261 >= 0, s261 <= 0 + 1, s116 >= 0, s116 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 9 }-> if(1, 0, s117, s763, s764, 1 + p(0) + s765, 1 + s262 + s766, z'', append(z'', 0)) :|: s763 >= 0, s763 <= z, s764 >= 0, s764 <= z', s765 >= 0, s765 <= z, s766 >= 0, s766 <= z', s262 >= 0, s262 <= 0 + 1, s117 >= 0, s117 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x'' }-> if(1, 0, s118, s767, s768, 1 + p(x') + s769, 1 + s263 + s770, z'', append(z'', x1)) :|: s767 >= 0, s767 <= z, s768 >= 0, s768 <= z', s769 >= 0, s769 <= z, s770 >= 0, s770 <= z', s263 >= 0, s263 <= x'' + 1, s118 >= 0, s118 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 10 + x'' }-> if(1, 0, s119, s771, s772, 1 + p(x') + s773, 1 + s264 + s774, z'', append(z'', 0)) :|: s771 >= 0, s771 <= z, s772 >= 0, s772 <= z', s773 >= 0, s773 <= z, s774 >= 0, s774 <= z', s264 >= 0, s264 <= x'' + 1, s119 >= 0, s119 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 }-> if(1, 0, s120, s775, s776, 1 + p(x') + s777, 1 + s265 + s778, z'', append(z'', x'')) :|: s775 >= 0, s775 <= z, s776 >= 0, s776 <= z', s777 >= 0, s777 <= z, s778 >= 0, s778 <= z', s265 >= 0, s265 <= 0 + 1, s120 >= 0, s120 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 9 }-> if(1, 0, s121, s779, s780, 1 + p(x') + s781, 1 + s266 + s782, z'', append(z'', 0)) :|: s779 >= 0, s779 <= z, s780 >= 0, s780 <= z', s781 >= 0, s781 <= z, s782 >= 0, s782 <= z', s266 >= 0, s266 <= 0 + 1, s121 >= 0, s121 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + x' }-> if(1, 0, s122, s783, s784, 1 + p(0) + s785, 1 + s267 + s786, z'', append(z'', x'')) :|: s783 >= 0, s783 <= z, s784 >= 0, s784 <= z', s785 >= 0, s785 <= z, s786 >= 0, s786 <= z', s267 >= 0, s267 <= x' + 1, s122 >= 0, s122 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 9 + x' }-> if(1, 0, s123, s787, s788, 1 + p(0) + s789, 1 + s268 + s790, z'', append(z'', 0)) :|: s787 >= 0, s787 <= z, s788 >= 0, s788 <= z', s789 >= 0, s789 <= z, s790 >= 0, s790 <= z', s268 >= 0, s268 <= x' + 1, s123 >= 0, s123 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 }-> if(1, 0, s124, s791, s792, 1 + p(0) + s793, 1 + s269 + s794, z'', append(z'', x')) :|: s791 >= 0, s791 <= z, s792 >= 0, s792 <= z', s793 >= 0, s793 <= z, s794 >= 0, s794 <= z', s269 >= 0, s269 <= 0 + 1, s124 >= 0, s124 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 8 }-> if(1, 0, s125, s795, s796, 1 + p(0) + s797, 1 + s270 + s798, z'', append(z'', 0)) :|: s795 >= 0, s795 <= z, s796 >= 0, s796 <= z', s797 >= 0, s797 <= z, s798 >= 0, s798 <= z', s270 >= 0, s270 <= 0 + 1, s125 >= 0, s125 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 12 + x'' }-> if(0, 2, s46, s479, s480, 1 + p(x') + s481, 1 + s191 + s482, z'', append(z'', x1)) :|: s479 >= 0, s479 <= z, s480 >= 0, s480 <= z', s481 >= 0, s481 <= z, s482 >= 0, s482 <= z', s191 >= 0, s191 <= x'' + 1, s46 >= 0, s46 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' }-> if(0, 2, s47, s483, s484, 1 + p(x') + s485, 1 + s192 + s486, z'', append(z'', 0)) :|: s483 >= 0, s483 <= z, s484 >= 0, s484 <= z', s485 >= 0, s485 <= z, s486 >= 0, s486 <= z', s192 >= 0, s192 <= x'' + 1, s47 >= 0, s47 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 }-> if(0, 2, s48, s487, s488, 1 + p(x') + s489, 1 + s193 + s490, z'', append(z'', x'')) :|: s487 >= 0, s487 <= z, s488 >= 0, s488 <= z', s489 >= 0, s489 <= z, s490 >= 0, s490 <= z', s193 >= 0, s193 <= 0 + 1, s48 >= 0, s48 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 }-> if(0, 2, s49, s491, s492, 1 + p(x') + s493, 1 + s194 + s494, z'', append(z'', 0)) :|: s491 >= 0, s491 <= z, s492 >= 0, s492 <= z', s493 >= 0, s493 <= z, s494 >= 0, s494 <= z', s194 >= 0, s194 <= 0 + 1, s49 >= 0, s49 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x' }-> if(0, 2, s50, s495, s496, 1 + p(0) + s497, 1 + s195 + s498, z'', append(z'', x'')) :|: s495 >= 0, s495 <= z, s496 >= 0, s496 <= z', s497 >= 0, s497 <= z, s498 >= 0, s498 <= z', s195 >= 0, s195 <= x' + 1, s50 >= 0, s50 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' }-> if(0, 2, s51, s499, s500, 1 + p(0) + s501, 1 + s196 + s502, z'', append(z'', 0)) :|: s499 >= 0, s499 <= z, s500 >= 0, s500 <= z', s501 >= 0, s501 <= z, s502 >= 0, s502 <= z', s196 >= 0, s196 <= x' + 1, s51 >= 0, s51 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 }-> if(0, 2, s52, s503, s504, 1 + p(0) + s505, 1 + s197 + s506, z'', append(z'', x')) :|: s503 >= 0, s503 <= z, s504 >= 0, s504 <= z', s505 >= 0, s505 <= z, s506 >= 0, s506 <= z', s197 >= 0, s197 <= 0 + 1, s52 >= 0, s52 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 }-> if(0, 2, s53, s507, s508, 1 + p(0) + s509, 1 + s198 + s510, z'', append(z'', 0)) :|: s507 >= 0, s507 <= z, s508 >= 0, s508 <= z', s509 >= 0, s509 <= z, s510 >= 0, s510 <= z', s198 >= 0, s198 <= 0 + 1, s53 >= 0, s53 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 11 + x' }-> if(0, 2, s54, s511, s512, 1 + p(x) + s513, 1 + s199 + s514, z'', append(z'', x'')) :|: s511 >= 0, s511 <= z, s512 >= 0, s512 <= z', s513 >= 0, s513 <= z, s514 >= 0, s514 <= z', s199 >= 0, s199 <= x' + 1, s54 >= 0, s54 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' }-> if(0, 2, s55, s515, s516, 1 + p(x) + s517, 1 + s200 + s518, z'', append(z'', 0)) :|: s515 >= 0, s515 <= z, s516 >= 0, s516 <= z', s517 >= 0, s517 <= z, s518 >= 0, s518 <= z', s200 >= 0, s200 <= x' + 1, s55 >= 0, s55 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 }-> if(0, 2, s56, s519, s520, 1 + p(x) + s521, 1 + s201 + s522, z'', append(z'', x')) :|: s519 >= 0, s519 <= z, s520 >= 0, s520 <= z', s521 >= 0, s521 <= z, s522 >= 0, s522 <= z', s201 >= 0, s201 <= 0 + 1, s56 >= 0, s56 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 }-> if(0, 2, s57, s523, s524, 1 + p(x) + s525, 1 + s202 + s526, z'', append(z'', 0)) :|: s523 >= 0, s523 <= z, s524 >= 0, s524 <= z', s525 >= 0, s525 <= z, s526 >= 0, s526 <= z', s202 >= 0, s202 <= 0 + 1, s57 >= 0, s57 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 10 + x }-> if(0, 2, s58, s527, s528, 1 + p(0) + s529, 1 + s203 + s530, z'', append(z'', x')) :|: s527 >= 0, s527 <= z, s528 >= 0, s528 <= z', s529 >= 0, s529 <= z, s530 >= 0, s530 <= z', s203 >= 0, s203 <= x + 1, s58 >= 0, s58 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 + x }-> if(0, 2, s59, s531, s532, 1 + p(0) + s533, 1 + s204 + s534, z'', append(z'', 0)) :|: s531 >= 0, s531 <= z, s532 >= 0, s532 <= z', s533 >= 0, s533 <= z, s534 >= 0, s534 <= z', s204 >= 0, s204 <= x + 1, s59 >= 0, s59 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 9 }-> if(0, 2, s60, s535, s536, 1 + p(0) + s537, 1 + s205 + s538, z'', append(z'', x)) :|: s535 >= 0, s535 <= z, s536 >= 0, s536 <= z', s537 >= 0, s537 <= z, s538 >= 0, s538 <= z', s205 >= 0, s205 <= 0 + 1, s60 >= 0, s60 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 8 }-> if(0, 2, s61, s539, s540, 1 + p(0) + s541, 1 + s206 + s542, z'', append(z'', 0)) :|: s539 >= 0, s539 <= z, s540 >= 0, s540 <= z', s541 >= 0, s541 <= z, s542 >= 0, s542 <= z', s206 >= 0, s206 <= 0 + 1, s61 >= 0, s61 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 addLists(z, z', z'') -{ 12 + x1 }-> if(0, 1, s78, s607, s608, 1 + p(x'') + s609, 1 + s223 + s610, z'', append(z'', x2)) :|: s607 >= 0, s607 <= z, s608 >= 0, s608 <= z', s609 >= 0, s609 <= z, s610 >= 0, s610 <= z', s223 >= 0, s223 <= x1 + 1, s78 >= 0, s78 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 11 + x1 }-> if(0, 1, s79, s611, s612, 1 + p(x'') + s613, 1 + s224 + s614, z'', append(z'', 0)) :|: s611 >= 0, s611 <= z, s612 >= 0, s612 <= z', s613 >= 0, s613 <= z, s614 >= 0, s614 <= z', s224 >= 0, s224 <= x1 + 1, s79 >= 0, s79 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 }-> if(0, 1, s80, s615, s616, 1 + p(x'') + s617, 1 + s225 + s618, z'', append(z'', x1)) :|: s615 >= 0, s615 <= z, s616 >= 0, s616 <= z', s617 >= 0, s617 <= z, s618 >= 0, s618 <= z', s225 >= 0, s225 <= 0 + 1, s80 >= 0, s80 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 10 }-> if(0, 1, s81, s619, s620, 1 + p(x'') + s621, 1 + s226 + s622, z'', append(z'', 0)) :|: s619 >= 0, s619 <= z, s620 >= 0, s620 <= z', s621 >= 0, s621 <= z, s622 >= 0, s622 <= z', s226 >= 0, s226 <= 0 + 1, s81 >= 0, s81 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x'' }-> if(0, 1, s82, s623, s624, 1 + p(0) + s625, 1 + s227 + s626, z'', append(z'', x1)) :|: s623 >= 0, s623 <= z, s624 >= 0, s624 <= z', s625 >= 0, s625 <= z, s626 >= 0, s626 <= z', s227 >= 0, s227 <= x'' + 1, s82 >= 0, s82 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 10 + x'' }-> if(0, 1, s83, s627, s628, 1 + p(0) + s629, 1 + s228 + s630, z'', append(z'', 0)) :|: s627 >= 0, s627 <= z, s628 >= 0, s628 <= z', s629 >= 0, s629 <= z, s630 >= 0, s630 <= z', s228 >= 0, s228 <= x'' + 1, s83 >= 0, s83 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 }-> if(0, 1, s84, s631, s632, 1 + p(0) + s633, 1 + s229 + s634, z'', append(z'', x'')) :|: s631 >= 0, s631 <= z, s632 >= 0, s632 <= z', s633 >= 0, s633 <= z, s634 >= 0, s634 <= z', s229 >= 0, s229 <= 0 + 1, s84 >= 0, s84 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 9 }-> if(0, 1, s85, s635, s636, 1 + p(0) + s637, 1 + s230 + s638, z'', append(z'', 0)) :|: s635 >= 0, s635 <= z, s636 >= 0, s636 <= z', s637 >= 0, s637 <= z, s638 >= 0, s638 <= z', s230 >= 0, s230 <= 0 + 1, s85 >= 0, s85 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x'' }-> if(0, 1, s86, s639, s640, 1 + p(x') + s641, 1 + s231 + s642, z'', append(z'', x1)) :|: s639 >= 0, s639 <= z, s640 >= 0, s640 <= z', s641 >= 0, s641 <= z, s642 >= 0, s642 <= z', s231 >= 0, s231 <= x'' + 1, s86 >= 0, s86 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 10 + x'' }-> if(0, 1, s87, s643, s644, 1 + p(x') + s645, 1 + s232 + s646, z'', append(z'', 0)) :|: s643 >= 0, s643 <= z, s644 >= 0, s644 <= z', s645 >= 0, s645 <= z, s646 >= 0, s646 <= z', s232 >= 0, s232 <= x'' + 1, s87 >= 0, s87 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 }-> if(0, 1, s88, s647, s648, 1 + p(x') + s649, 1 + s233 + s650, z'', append(z'', x'')) :|: s647 >= 0, s647 <= z, s648 >= 0, s648 <= z', s649 >= 0, s649 <= z, s650 >= 0, s650 <= z', s233 >= 0, s233 <= 0 + 1, s88 >= 0, s88 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 9 }-> if(0, 1, s89, s651, s652, 1 + p(x') + s653, 1 + s234 + s654, z'', append(z'', 0)) :|: s651 >= 0, s651 <= z, s652 >= 0, s652 <= z', s653 >= 0, s653 <= z, s654 >= 0, s654 <= z', s234 >= 0, s234 <= 0 + 1, s89 >= 0, s89 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + x' }-> if(0, 1, s90, s655, s656, 1 + p(0) + s657, 1 + s235 + s658, z'', append(z'', x'')) :|: s655 >= 0, s655 <= z, s656 >= 0, s656 <= z', s657 >= 0, s657 <= z, s658 >= 0, s658 <= z', s235 >= 0, s235 <= x' + 1, s90 >= 0, s90 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 9 + x' }-> if(0, 1, s91, s659, s660, 1 + p(0) + s661, 1 + s236 + s662, z'', append(z'', 0)) :|: s659 >= 0, s659 <= z, s660 >= 0, s660 <= z', s661 >= 0, s661 <= z, s662 >= 0, s662 <= z', s236 >= 0, s236 <= x' + 1, s91 >= 0, s91 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 }-> if(0, 1, s92, s663, s664, 1 + p(0) + s665, 1 + s237 + s666, z'', append(z'', x')) :|: s663 >= 0, s663 <= z, s664 >= 0, s664 <= z', s665 >= 0, s665 <= z, s666 >= 0, s666 <= z', s237 >= 0, s237 <= 0 + 1, s92 >= 0, s92 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 8 }-> if(0, 1, s93, s667, s668, 1 + p(0) + s669, 1 + s238 + s670, z'', append(z'', 0)) :|: s667 >= 0, s667 <= z, s668 >= 0, s668 <= z', s669 >= 0, s669 <= z, s670 >= 0, s670 <= z', s238 >= 0, s238 <= 0 + 1, s93 >= 0, s93 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 11 + x'' }-> if(0, 0, s62, s543, s544, 1 + p(x') + s545, 1 + s207 + s546, z'', append(z'', x1)) :|: s543 >= 0, s543 <= z, s544 >= 0, s544 <= z', s545 >= 0, s545 <= z, s546 >= 0, s546 <= z', s207 >= 0, s207 <= x'' + 1, s62 >= 0, s62 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 10 + x'' }-> if(0, 0, s63, s547, s548, 1 + p(x') + s549, 1 + s208 + s550, z'', append(z'', 0)) :|: s547 >= 0, s547 <= z, s548 >= 0, s548 <= z', s549 >= 0, s549 <= z, s550 >= 0, s550 <= z', s208 >= 0, s208 <= x'' + 1, s63 >= 0, s63 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 }-> if(0, 0, s64, s551, s552, 1 + p(x') + s553, 1 + s209 + s554, z'', append(z'', x'')) :|: s551 >= 0, s551 <= z, s552 >= 0, s552 <= z', s553 >= 0, s553 <= z, s554 >= 0, s554 <= z', s209 >= 0, s209 <= 0 + 1, s64 >= 0, s64 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 9 }-> if(0, 0, s65, s555, s556, 1 + p(x') + s557, 1 + s210 + s558, z'', append(z'', 0)) :|: s555 >= 0, s555 <= z, s556 >= 0, s556 <= z', s557 >= 0, s557 <= z, s558 >= 0, s558 <= z', s210 >= 0, s210 <= 0 + 1, s65 >= 0, s65 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + x' }-> if(0, 0, s66, s559, s560, 1 + p(0) + s561, 1 + s211 + s562, z'', append(z'', x'')) :|: s559 >= 0, s559 <= z, s560 >= 0, s560 <= z', s561 >= 0, s561 <= z, s562 >= 0, s562 <= z', s211 >= 0, s211 <= x' + 1, s66 >= 0, s66 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 9 + x' }-> if(0, 0, s67, s563, s564, 1 + p(0) + s565, 1 + s212 + s566, z'', append(z'', 0)) :|: s563 >= 0, s563 <= z, s564 >= 0, s564 <= z', s565 >= 0, s565 <= z, s566 >= 0, s566 <= z', s212 >= 0, s212 <= x' + 1, s67 >= 0, s67 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 }-> if(0, 0, s68, s567, s568, 1 + p(0) + s569, 1 + s213 + s570, z'', append(z'', x')) :|: s567 >= 0, s567 <= z, s568 >= 0, s568 <= z', s569 >= 0, s569 <= z, s570 >= 0, s570 <= z', s213 >= 0, s213 <= 0 + 1, s68 >= 0, s68 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 8 }-> if(0, 0, s69, s571, s572, 1 + p(0) + s573, 1 + s214 + s574, z'', append(z'', 0)) :|: s571 >= 0, s571 <= z, s572 >= 0, s572 <= z', s573 >= 0, s573 <= z, s574 >= 0, s574 <= z', s214 >= 0, s214 <= 0 + 1, s69 >= 0, s69 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 10 + x' }-> if(0, 0, s70, s575, s576, 1 + p(x) + s577, 1 + s215 + s578, z'', append(z'', x'')) :|: s575 >= 0, s575 <= z, s576 >= 0, s576 <= z', s577 >= 0, s577 <= z, s578 >= 0, s578 <= z', s215 >= 0, s215 <= x' + 1, s70 >= 0, s70 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 9 + x' }-> if(0, 0, s71, s579, s580, 1 + p(x) + s581, 1 + s216 + s582, z'', append(z'', 0)) :|: s579 >= 0, s579 <= z, s580 >= 0, s580 <= z', s581 >= 0, s581 <= z, s582 >= 0, s582 <= z', s216 >= 0, s216 <= x' + 1, s71 >= 0, s71 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 }-> if(0, 0, s72, s583, s584, 1 + p(x) + s585, 1 + s217 + s586, z'', append(z'', x')) :|: s583 >= 0, s583 <= z, s584 >= 0, s584 <= z', s585 >= 0, s585 <= z, s586 >= 0, s586 <= z', s217 >= 0, s217 <= 0 + 1, s72 >= 0, s72 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 8 }-> if(0, 0, s73, s587, s588, 1 + p(x) + s589, 1 + s218 + s590, z'', append(z'', 0)) :|: s587 >= 0, s587 <= z, s588 >= 0, s588 <= z', s589 >= 0, s589 <= z, s590 >= 0, s590 <= z', s218 >= 0, s218 <= 0 + 1, s73 >= 0, s73 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 9 + x }-> if(0, 0, s74, s591, s592, 1 + p(0) + s593, 1 + s219 + s594, z'', append(z'', x')) :|: s591 >= 0, s591 <= z, s592 >= 0, s592 <= z', s593 >= 0, s593 <= z, s594 >= 0, s594 <= z', s219 >= 0, s219 <= x + 1, s74 >= 0, s74 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 8 + x }-> if(0, 0, s75, s595, s596, 1 + p(0) + s597, 1 + s220 + s598, z'', append(z'', 0)) :|: s595 >= 0, s595 <= z, s596 >= 0, s596 <= z', s597 >= 0, s597 <= z, s598 >= 0, s598 <= z', s220 >= 0, s220 <= x + 1, s75 >= 0, s75 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 8 }-> if(0, 0, s76, s599, s600, 1 + p(0) + s601, 1 + s221 + s602, z'', append(z'', x)) :|: s599 >= 0, s599 <= z, s600 >= 0, s600 <= z', s601 >= 0, s601 <= z, s602 >= 0, s602 <= z', s221 >= 0, s221 <= 0 + 1, s76 >= 0, s76 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 7 }-> if(0, 0, s77, s603, s604, 1 + p(0) + s605, 1 + s222 + s606, z'', append(z'', 0)) :|: s603 >= 0, s603 <= z, s604 >= 0, s604 <= z', s605 >= 0, s605 <= z, s606 >= 0, s606 <= z', s222 >= 0, s222 <= 0 + 1, s77 >= 0, s77 <= 2, z >= 0, z' >= 0, z'' >= 0 append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 append(z, z') -{ 1 }-> 1 + y + append(ys, z') :|: ys >= 0, y >= 0, z' >= 0, z = 1 + y + ys append(z, z') -{ 1 }-> 1 + z' + 1 :|: z = 1, z' >= 0 head(z) -{ 1 }-> x :|: z = 1 + x + xs, xs >= 0, x >= 0 head(z) -{ 0 }-> 0 :|: z >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> z5 :|: z1 >= 0, z' = 2, z5 >= 0, z6 >= 0, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z1, z2, z6) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 2, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z3, z4, z5) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 1, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z5 >= 0, z6 >= 0, z' = 1, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z' = 2, z = 1, z5 >= 0, z6 >= 0, z4 >= 0, z'' >= 0, z3 >= 0, z2 >= 0 inc(z) -{ 1 + z }-> 1 + s142 :|: s142 >= 0, s142 <= z - 1 + 1, z - 1 >= 0 inc(z) -{ 1 }-> 1 + 0 :|: z = 0 isEmpty(z) -{ 1 }-> 2 :|: z = 1 isEmpty(z) -{ 1 }-> 1 :|: z = 1 + x + xs, xs >= 0, x >= 0 isEmpty(z) -{ 0 }-> 0 :|: z >= 0 isZero(z) -{ 1 }-> 2 :|: z = 0 isZero(z) -{ 1 }-> 1 :|: z - 1 >= 0 p(z) -{ 1 }-> 0 :|: z = 1 + 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 1 }-> 1 + p(1 + (z - 2)) :|: z - 2 >= 0 tail(z) -{ 1 }-> xs :|: z = 1 + x + xs, xs >= 0, x >= 0 tail(z) -{ 1 }-> 1 :|: z = 1 tail(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {head}, {p}, {addLists,if}, {addList} Previous analysis results are: isEmpty: runtime: O(1) [1], size: O(1) [2] isZero: runtime: O(1) [1], size: O(1) [2] inc: runtime: O(n^1) [1 + z], size: O(n^1) [1 + z] tail: runtime: O(1) [1], size: O(n^1) [z] append: runtime: O(n^1) [1 + z], size: O(n^1) [1 + z + z'] ---------------------------------------- (51) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (52) Obligation: Complexity RNTS consisting of the following rules: addList(z, z') -{ 1 }-> addLists(z, z', 1) :|: z >= 0, z' >= 0 addLists(z, z', z'') -{ 14 + x'' + z'' }-> if(2, 2, s, s287, s288, 1 + p(x') + s289, 1 + s143 + s290, z'', s864) :|: s864 >= 0, s864 <= z'' + x1 + 1, s287 >= 0, s287 <= z, s288 >= 0, s288 <= z', s289 >= 0, s289 <= z, s290 >= 0, s290 <= z', s143 >= 0, s143 <= x'' + 1, s >= 0, s <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(2, 2, s', s291, s292, 1 + p(x') + s293, 1 + s144 + s294, z'', s865) :|: s865 >= 0, s865 <= z'' + 0 + 1, s291 >= 0, s291 <= z, s292 >= 0, s292 <= z', s293 >= 0, s293 <= z, s294 >= 0, s294 <= z', s144 >= 0, s144 <= x'' + 1, s' >= 0, s' <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + z'' }-> if(2, 2, s'', s295, s296, 1 + p(x') + s297, 1 + s145 + s298, z'', s866) :|: s866 >= 0, s866 <= z'' + x'' + 1, s295 >= 0, s295 <= z, s296 >= 0, s296 <= z', s297 >= 0, s297 <= z, s298 >= 0, s298 <= z', s145 >= 0, s145 <= 0 + 1, s'' >= 0, s'' <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 2, s1, s299, s300, 1 + p(x') + s301, 1 + s146 + s302, z'', s867) :|: s867 >= 0, s867 <= z'' + 0 + 1, s299 >= 0, s299 <= z, s300 >= 0, s300 <= z', s301 >= 0, s301 <= z, s302 >= 0, s302 <= z', s146 >= 0, s146 <= 0 + 1, s1 >= 0, s1 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x + z'' }-> if(2, 2, s10, s335, s336, 1 + p(0) + s337, 1 + s155 + s338, z'', s876) :|: s876 >= 0, s876 <= z'' + x' + 1, s335 >= 0, s335 <= z, s336 >= 0, s336 <= z', s337 >= 0, s337 <= z, s338 >= 0, s338 <= z', s155 >= 0, s155 <= x + 1, s10 >= 0, s10 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x + z'' }-> if(2, 2, s11, s339, s340, 1 + p(0) + s341, 1 + s156 + s342, z'', s877) :|: s877 >= 0, s877 <= z'' + 0 + 1, s339 >= 0, s339 <= z, s340 >= 0, s340 <= z', s341 >= 0, s341 <= z, s342 >= 0, s342 <= z', s156 >= 0, s156 <= x + 1, s11 >= 0, s11 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 2, s12, s343, s344, 1 + p(0) + s345, 1 + s157 + s346, z'', s878) :|: s878 >= 0, s878 <= z'' + x + 1, s343 >= 0, s343 <= z, s344 >= 0, s344 <= z', s345 >= 0, s345 <= z, s346 >= 0, s346 <= z', s157 >= 0, s157 <= 0 + 1, s12 >= 0, s12 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(2, 2, s13, s347, s348, 1 + p(0) + s349, 1 + s158 + s350, z'', s879) :|: s879 >= 0, s879 <= z'' + 0 + 1, s347 >= 0, s347 <= z, s348 >= 0, s348 <= z', s349 >= 0, s349 <= z, s350 >= 0, s350 <= z', s158 >= 0, s158 <= 0 + 1, s13 >= 0, s13 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 addLists(z, z', z'') -{ 13 + x' + z'' }-> if(2, 2, s2, s303, s304, 1 + p(0) + s305, 1 + s147 + s306, z'', s868) :|: s868 >= 0, s868 <= z'' + x'' + 1, s303 >= 0, s303 <= z, s304 >= 0, s304 <= z', s305 >= 0, s305 <= z, s306 >= 0, s306 <= z', s147 >= 0, s147 <= x' + 1, s2 >= 0, s2 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(2, 2, s3, s307, s308, 1 + p(0) + s309, 1 + s148 + s310, z'', s869) :|: s869 >= 0, s869 <= z'' + 0 + 1, s307 >= 0, s307 <= z, s308 >= 0, s308 <= z', s309 >= 0, s309 <= z, s310 >= 0, s310 <= z', s148 >= 0, s148 <= x' + 1, s3 >= 0, s3 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 2, s4, s311, s312, 1 + p(0) + s313, 1 + s149 + s314, z'', s870) :|: s870 >= 0, s870 <= z'' + x' + 1, s311 >= 0, s311 <= z, s312 >= 0, s312 <= z', s313 >= 0, s313 <= z, s314 >= 0, s314 <= z', s149 >= 0, s149 <= 0 + 1, s4 >= 0, s4 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 2, s5, s315, s316, 1 + p(0) + s317, 1 + s150 + s318, z'', s871) :|: s871 >= 0, s871 <= z'' + 0 + 1, s315 >= 0, s315 <= z, s316 >= 0, s316 <= z', s317 >= 0, s317 <= z, s318 >= 0, s318 <= z', s150 >= 0, s150 <= 0 + 1, s5 >= 0, s5 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 13 + x' + z'' }-> if(2, 2, s6, s319, s320, 1 + p(x) + s321, 1 + s151 + s322, z'', s872) :|: s872 >= 0, s872 <= z'' + x'' + 1, s319 >= 0, s319 <= z, s320 >= 0, s320 <= z', s321 >= 0, s321 <= z, s322 >= 0, s322 <= z', s151 >= 0, s151 <= x' + 1, s6 >= 0, s6 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(2, 2, s7, s323, s324, 1 + p(x) + s325, 1 + s152 + s326, z'', s873) :|: s873 >= 0, s873 <= z'' + 0 + 1, s323 >= 0, s323 <= z, s324 >= 0, s324 <= z', s325 >= 0, s325 <= z, s326 >= 0, s326 <= z', s152 >= 0, s152 <= x' + 1, s7 >= 0, s7 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 2, s8, s327, s328, 1 + p(x) + s329, 1 + s153 + s330, z'', s874) :|: s874 >= 0, s874 <= z'' + x' + 1, s327 >= 0, s327 <= z, s328 >= 0, s328 <= z', s329 >= 0, s329 <= z, s330 >= 0, s330 <= z', s153 >= 0, s153 <= 0 + 1, s8 >= 0, s8 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 2, s9, s331, s332, 1 + p(x) + s333, 1 + s154 + s334, z'', s875) :|: s875 >= 0, s875 <= z'' + 0 + 1, s331 >= 0, s331 <= z, s332 >= 0, s332 <= z', s333 >= 0, s333 <= z, s334 >= 0, s334 <= z', s154 >= 0, s154 <= 0 + 1, s9 >= 0, s9 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 14 + x1 + z'' }-> if(2, 1, s30, s415, s416, 1 + p(x'') + s417, 1 + s175 + s418, z'', s896) :|: s896 >= 0, s896 <= z'' + x2 + 1, s415 >= 0, s415 <= z, s416 >= 0, s416 <= z', s417 >= 0, s417 <= z, s418 >= 0, s418 <= z', s175 >= 0, s175 <= x1 + 1, s30 >= 0, s30 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 13 + x1 + z'' }-> if(2, 1, s31, s419, s420, 1 + p(x'') + s421, 1 + s176 + s422, z'', s897) :|: s897 >= 0, s897 <= z'' + 0 + 1, s419 >= 0, s419 <= z, s420 >= 0, s420 <= z', s421 >= 0, s421 <= z, s422 >= 0, s422 <= z', s176 >= 0, s176 <= x1 + 1, s31 >= 0, s31 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 13 + z'' }-> if(2, 1, s32, s423, s424, 1 + p(x'') + s425, 1 + s177 + s426, z'', s898) :|: s898 >= 0, s898 <= z'' + x1 + 1, s423 >= 0, s423 <= z, s424 >= 0, s424 <= z', s425 >= 0, s425 <= z, s426 >= 0, s426 <= z', s177 >= 0, s177 <= 0 + 1, s32 >= 0, s32 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 1, s33, s427, s428, 1 + p(x'') + s429, 1 + s178 + s430, z'', s899) :|: s899 >= 0, s899 <= z'' + 0 + 1, s427 >= 0, s427 <= z, s428 >= 0, s428 <= z', s429 >= 0, s429 <= z, s430 >= 0, s430 <= z', s178 >= 0, s178 <= 0 + 1, s33 >= 0, s33 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(2, 1, s34, s431, s432, 1 + p(0) + s433, 1 + s179 + s434, z'', s900) :|: s900 >= 0, s900 <= z'' + x1 + 1, s431 >= 0, s431 <= z, s432 >= 0, s432 <= z', s433 >= 0, s433 <= z, s434 >= 0, s434 <= z', s179 >= 0, s179 <= x'' + 1, s34 >= 0, s34 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(2, 1, s35, s435, s436, 1 + p(0) + s437, 1 + s180 + s438, z'', s901) :|: s901 >= 0, s901 <= z'' + 0 + 1, s435 >= 0, s435 <= z, s436 >= 0, s436 <= z', s437 >= 0, s437 <= z, s438 >= 0, s438 <= z', s180 >= 0, s180 <= x'' + 1, s35 >= 0, s35 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 1, s36, s439, s440, 1 + p(0) + s441, 1 + s181 + s442, z'', s902) :|: s902 >= 0, s902 <= z'' + x'' + 1, s439 >= 0, s439 <= z, s440 >= 0, s440 <= z', s441 >= 0, s441 <= z, s442 >= 0, s442 <= z', s181 >= 0, s181 <= 0 + 1, s36 >= 0, s36 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 1, s37, s443, s444, 1 + p(0) + s445, 1 + s182 + s446, z'', s903) :|: s903 >= 0, s903 <= z'' + 0 + 1, s443 >= 0, s443 <= z, s444 >= 0, s444 <= z', s445 >= 0, s445 <= z, s446 >= 0, s446 <= z', s182 >= 0, s182 <= 0 + 1, s37 >= 0, s37 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(2, 1, s38, s447, s448, 1 + p(x') + s449, 1 + s183 + s450, z'', s904) :|: s904 >= 0, s904 <= z'' + x1 + 1, s447 >= 0, s447 <= z, s448 >= 0, s448 <= z', s449 >= 0, s449 <= z, s450 >= 0, s450 <= z', s183 >= 0, s183 <= x'' + 1, s38 >= 0, s38 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(2, 1, s39, s451, s452, 1 + p(x') + s453, 1 + s184 + s454, z'', s905) :|: s905 >= 0, s905 <= z'' + 0 + 1, s451 >= 0, s451 <= z, s452 >= 0, s452 <= z', s453 >= 0, s453 <= z, s454 >= 0, s454 <= z', s184 >= 0, s184 <= x'' + 1, s39 >= 0, s39 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 1, s40, s455, s456, 1 + p(x') + s457, 1 + s185 + s458, z'', s906) :|: s906 >= 0, s906 <= z'' + x'' + 1, s455 >= 0, s455 <= z, s456 >= 0, s456 <= z', s457 >= 0, s457 <= z, s458 >= 0, s458 <= z', s185 >= 0, s185 <= 0 + 1, s40 >= 0, s40 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 1, s41, s459, s460, 1 + p(x') + s461, 1 + s186 + s462, z'', s907) :|: s907 >= 0, s907 <= z'' + 0 + 1, s459 >= 0, s459 <= z, s460 >= 0, s460 <= z', s461 >= 0, s461 <= z, s462 >= 0, s462 <= z', s186 >= 0, s186 <= 0 + 1, s41 >= 0, s41 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(2, 1, s42, s463, s464, 1 + p(0) + s465, 1 + s187 + s466, z'', s908) :|: s908 >= 0, s908 <= z'' + x'' + 1, s463 >= 0, s463 <= z, s464 >= 0, s464 <= z', s465 >= 0, s465 <= z, s466 >= 0, s466 <= z', s187 >= 0, s187 <= x' + 1, s42 >= 0, s42 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(2, 1, s43, s467, s468, 1 + p(0) + s469, 1 + s188 + s470, z'', s909) :|: s909 >= 0, s909 <= z'' + 0 + 1, s467 >= 0, s467 <= z, s468 >= 0, s468 <= z', s469 >= 0, s469 <= z, s470 >= 0, s470 <= z', s188 >= 0, s188 <= x' + 1, s43 >= 0, s43 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 1, s44, s471, s472, 1 + p(0) + s473, 1 + s189 + s474, z'', s910) :|: s910 >= 0, s910 <= z'' + x' + 1, s471 >= 0, s471 <= z, s472 >= 0, s472 <= z', s473 >= 0, s473 <= z, s474 >= 0, s474 <= z', s189 >= 0, s189 <= 0 + 1, s44 >= 0, s44 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(2, 1, s45, s475, s476, 1 + p(0) + s477, 1 + s190 + s478, z'', s911) :|: s911 >= 0, s911 <= z'' + 0 + 1, s475 >= 0, s475 <= z, s476 >= 0, s476 <= z', s477 >= 0, s477 <= z, s478 >= 0, s478 <= z', s190 >= 0, s190 <= 0 + 1, s45 >= 0, s45 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(2, 0, s14, s351, s352, 1 + p(x') + s353, 1 + s159 + s354, z'', s880) :|: s880 >= 0, s880 <= z'' + x1 + 1, s351 >= 0, s351 <= z, s352 >= 0, s352 <= z', s353 >= 0, s353 <= z, s354 >= 0, s354 <= z', s159 >= 0, s159 <= x'' + 1, s14 >= 0, s14 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(2, 0, s15, s355, s356, 1 + p(x') + s357, 1 + s160 + s358, z'', s881) :|: s881 >= 0, s881 <= z'' + 0 + 1, s355 >= 0, s355 <= z, s356 >= 0, s356 <= z', s357 >= 0, s357 <= z, s358 >= 0, s358 <= z', s160 >= 0, s160 <= x'' + 1, s15 >= 0, s15 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 0, s16, s359, s360, 1 + p(x') + s361, 1 + s161 + s362, z'', s882) :|: s882 >= 0, s882 <= z'' + x'' + 1, s359 >= 0, s359 <= z, s360 >= 0, s360 <= z', s361 >= 0, s361 <= z, s362 >= 0, s362 <= z', s161 >= 0, s161 <= 0 + 1, s16 >= 0, s16 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 0, s17, s363, s364, 1 + p(x') + s365, 1 + s162 + s366, z'', s883) :|: s883 >= 0, s883 <= z'' + 0 + 1, s363 >= 0, s363 <= z, s364 >= 0, s364 <= z', s365 >= 0, s365 <= z, s366 >= 0, s366 <= z', s162 >= 0, s162 <= 0 + 1, s17 >= 0, s17 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(2, 0, s18, s367, s368, 1 + p(0) + s369, 1 + s163 + s370, z'', s884) :|: s884 >= 0, s884 <= z'' + x'' + 1, s367 >= 0, s367 <= z, s368 >= 0, s368 <= z', s369 >= 0, s369 <= z, s370 >= 0, s370 <= z', s163 >= 0, s163 <= x' + 1, s18 >= 0, s18 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(2, 0, s19, s371, s372, 1 + p(0) + s373, 1 + s164 + s374, z'', s885) :|: s885 >= 0, s885 <= z'' + 0 + 1, s371 >= 0, s371 <= z, s372 >= 0, s372 <= z', s373 >= 0, s373 <= z, s374 >= 0, s374 <= z', s164 >= 0, s164 <= x' + 1, s19 >= 0, s19 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 0, s20, s375, s376, 1 + p(0) + s377, 1 + s165 + s378, z'', s886) :|: s886 >= 0, s886 <= z'' + x' + 1, s375 >= 0, s375 <= z, s376 >= 0, s376 <= z', s377 >= 0, s377 <= z, s378 >= 0, s378 <= z', s165 >= 0, s165 <= 0 + 1, s20 >= 0, s20 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(2, 0, s21, s379, s380, 1 + p(0) + s381, 1 + s166 + s382, z'', s887) :|: s887 >= 0, s887 <= z'' + 0 + 1, s379 >= 0, s379 <= z, s380 >= 0, s380 <= z', s381 >= 0, s381 <= z, s382 >= 0, s382 <= z', s166 >= 0, s166 <= 0 + 1, s21 >= 0, s21 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(2, 0, s22, s383, s384, 1 + p(x) + s385, 1 + s167 + s386, z'', s888) :|: s888 >= 0, s888 <= z'' + x'' + 1, s383 >= 0, s383 <= z, s384 >= 0, s384 <= z', s385 >= 0, s385 <= z, s386 >= 0, s386 <= z', s167 >= 0, s167 <= x' + 1, s22 >= 0, s22 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(2, 0, s23, s387, s388, 1 + p(x) + s389, 1 + s168 + s390, z'', s889) :|: s889 >= 0, s889 <= z'' + 0 + 1, s387 >= 0, s387 <= z, s388 >= 0, s388 <= z', s389 >= 0, s389 <= z, s390 >= 0, s390 <= z', s168 >= 0, s168 <= x' + 1, s23 >= 0, s23 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 0, s24, s391, s392, 1 + p(x) + s393, 1 + s169 + s394, z'', s890) :|: s890 >= 0, s890 <= z'' + x' + 1, s391 >= 0, s391 <= z, s392 >= 0, s392 <= z', s393 >= 0, s393 <= z, s394 >= 0, s394 <= z', s169 >= 0, s169 <= 0 + 1, s24 >= 0, s24 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(2, 0, s25, s395, s396, 1 + p(x) + s397, 1 + s170 + s398, z'', s891) :|: s891 >= 0, s891 <= z'' + 0 + 1, s395 >= 0, s395 <= z, s396 >= 0, s396 <= z', s397 >= 0, s397 <= z, s398 >= 0, s398 <= z', s170 >= 0, s170 <= 0 + 1, s25 >= 0, s25 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 11 + x + z'' }-> if(2, 0, s26, s399, s400, 1 + p(0) + s401, 1 + s171 + s402, z'', s892) :|: s892 >= 0, s892 <= z'' + x' + 1, s399 >= 0, s399 <= z, s400 >= 0, s400 <= z', s401 >= 0, s401 <= z, s402 >= 0, s402 <= z', s171 >= 0, s171 <= x + 1, s26 >= 0, s26 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + x + z'' }-> if(2, 0, s27, s403, s404, 1 + p(0) + s405, 1 + s172 + s406, z'', s893) :|: s893 >= 0, s893 <= z'' + 0 + 1, s403 >= 0, s403 <= z, s404 >= 0, s404 <= z', s405 >= 0, s405 <= z, s406 >= 0, s406 <= z', s172 >= 0, s172 <= x + 1, s27 >= 0, s27 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(2, 0, s28, s407, s408, 1 + p(0) + s409, 1 + s173 + s410, z'', s894) :|: s894 >= 0, s894 <= z'' + x + 1, s407 >= 0, s407 <= z, s408 >= 0, s408 <= z', s409 >= 0, s409 <= z, s410 >= 0, s410 <= z', s173 >= 0, s173 <= 0 + 1, s28 >= 0, s28 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(2, 0, s29, s411, s412, 1 + p(0) + s413, 1 + s174 + s414, z'', s895) :|: s895 >= 0, s895 <= z'' + 0 + 1, s411 >= 0, s411 <= z, s412 >= 0, s412 <= z', s413 >= 0, s413 <= z, s414 >= 0, s414 <= z', s174 >= 0, s174 <= 0 + 1, s29 >= 0, s29 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 2, s100, s695, s696, 1 + p(0) + s697, 1 + s245 + s698, z'', s966) :|: s966 >= 0, s966 <= z'' + x'' + 1, s695 >= 0, s695 <= z, s696 >= 0, s696 <= z', s697 >= 0, s697 <= z, s698 >= 0, s698 <= z', s245 >= 0, s245 <= 0 + 1, s100 >= 0, s100 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 2, s101, s699, s700, 1 + p(0) + s701, 1 + s246 + s702, z'', s967) :|: s967 >= 0, s967 <= z'' + 0 + 1, s699 >= 0, s699 <= z, s700 >= 0, s700 <= z', s701 >= 0, s701 <= z, s702 >= 0, s702 <= z', s246 >= 0, s246 <= 0 + 1, s101 >= 0, s101 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(1, 2, s102, s703, s704, 1 + p(x') + s705, 1 + s247 + s706, z'', s968) :|: s968 >= 0, s968 <= z'' + x1 + 1, s703 >= 0, s703 <= z, s704 >= 0, s704 <= z', s705 >= 0, s705 <= z, s706 >= 0, s706 <= z', s247 >= 0, s247 <= x'' + 1, s102 >= 0, s102 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(1, 2, s103, s707, s708, 1 + p(x') + s709, 1 + s248 + s710, z'', s969) :|: s969 >= 0, s969 <= z'' + 0 + 1, s707 >= 0, s707 <= z, s708 >= 0, s708 <= z', s709 >= 0, s709 <= z, s710 >= 0, s710 <= z', s248 >= 0, s248 <= x'' + 1, s103 >= 0, s103 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 2, s104, s711, s712, 1 + p(x') + s713, 1 + s249 + s714, z'', s970) :|: s970 >= 0, s970 <= z'' + x'' + 1, s711 >= 0, s711 <= z, s712 >= 0, s712 <= z', s713 >= 0, s713 <= z, s714 >= 0, s714 <= z', s249 >= 0, s249 <= 0 + 1, s104 >= 0, s104 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 2, s105, s715, s716, 1 + p(x') + s717, 1 + s250 + s718, z'', s971) :|: s971 >= 0, s971 <= z'' + 0 + 1, s715 >= 0, s715 <= z, s716 >= 0, s716 <= z', s717 >= 0, s717 <= z, s718 >= 0, s718 <= z', s250 >= 0, s250 <= 0 + 1, s105 >= 0, s105 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(1, 2, s106, s719, s720, 1 + p(0) + s721, 1 + s251 + s722, z'', s972) :|: s972 >= 0, s972 <= z'' + x'' + 1, s719 >= 0, s719 <= z, s720 >= 0, s720 <= z', s721 >= 0, s721 <= z, s722 >= 0, s722 <= z', s251 >= 0, s251 <= x' + 1, s106 >= 0, s106 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(1, 2, s107, s723, s724, 1 + p(0) + s725, 1 + s252 + s726, z'', s973) :|: s973 >= 0, s973 <= z'' + 0 + 1, s723 >= 0, s723 <= z, s724 >= 0, s724 <= z', s725 >= 0, s725 <= z, s726 >= 0, s726 <= z', s252 >= 0, s252 <= x' + 1, s107 >= 0, s107 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 2, s108, s727, s728, 1 + p(0) + s729, 1 + s253 + s730, z'', s974) :|: s974 >= 0, s974 <= z'' + x' + 1, s727 >= 0, s727 <= z, s728 >= 0, s728 <= z', s729 >= 0, s729 <= z, s730 >= 0, s730 <= z', s253 >= 0, s253 <= 0 + 1, s108 >= 0, s108 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(1, 2, s109, s731, s732, 1 + p(0) + s733, 1 + s254 + s734, z'', s975) :|: s975 >= 0, s975 <= z'' + 0 + 1, s731 >= 0, s731 <= z, s732 >= 0, s732 <= z', s733 >= 0, s733 <= z, s734 >= 0, s734 <= z', s254 >= 0, s254 <= 0 + 1, s109 >= 0, s109 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 addLists(z, z', z'') -{ 14 + x1 + z'' }-> if(1, 2, s94, s671, s672, 1 + p(x'') + s673, 1 + s239 + s674, z'', s960) :|: s960 >= 0, s960 <= z'' + x2 + 1, s671 >= 0, s671 <= z, s672 >= 0, s672 <= z', s673 >= 0, s673 <= z, s674 >= 0, s674 <= z', s239 >= 0, s239 <= x1 + 1, s94 >= 0, s94 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 13 + x1 + z'' }-> if(1, 2, s95, s675, s676, 1 + p(x'') + s677, 1 + s240 + s678, z'', s961) :|: s961 >= 0, s961 <= z'' + 0 + 1, s675 >= 0, s675 <= z, s676 >= 0, s676 <= z', s677 >= 0, s677 <= z, s678 >= 0, s678 <= z', s240 >= 0, s240 <= x1 + 1, s95 >= 0, s95 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 13 + z'' }-> if(1, 2, s96, s679, s680, 1 + p(x'') + s681, 1 + s241 + s682, z'', s962) :|: s962 >= 0, s962 <= z'' + x1 + 1, s679 >= 0, s679 <= z, s680 >= 0, s680 <= z', s681 >= 0, s681 <= z, s682 >= 0, s682 <= z', s241 >= 0, s241 <= 0 + 1, s96 >= 0, s96 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 2, s97, s683, s684, 1 + p(x'') + s685, 1 + s242 + s686, z'', s963) :|: s963 >= 0, s963 <= z'' + 0 + 1, s683 >= 0, s683 <= z, s684 >= 0, s684 <= z', s685 >= 0, s685 <= z, s686 >= 0, s686 <= z', s242 >= 0, s242 <= 0 + 1, s97 >= 0, s97 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(1, 2, s98, s687, s688, 1 + p(0) + s689, 1 + s243 + s690, z'', s964) :|: s964 >= 0, s964 <= z'' + x1 + 1, s687 >= 0, s687 <= z, s688 >= 0, s688 <= z', s689 >= 0, s689 <= z, s690 >= 0, s690 <= z', s243 >= 0, s243 <= x'' + 1, s98 >= 0, s98 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(1, 2, s99, s691, s692, 1 + p(0) + s693, 1 + s244 + s694, z'', s965) :|: s965 >= 0, s965 <= z'' + 0 + 1, s691 >= 0, s691 <= z, s692 >= 0, s692 <= z', s693 >= 0, s693 <= z, s694 >= 0, s694 <= z', s244 >= 0, s244 <= x'' + 1, s99 >= 0, s99 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 14 + x2 + z'' }-> if(1, 1, s126, s799, s800, 1 + p(x1) + s801, 1 + s271 + s802, z'', s992) :|: s992 >= 0, s992 <= z'' + x3 + 1, s799 >= 0, s799 <= z, s800 >= 0, s800 <= z', s801 >= 0, s801 <= z, s802 >= 0, s802 <= z', s271 >= 0, s271 <= x2 + 1, s126 >= 0, s126 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0, z' = 1 + x3 + xs4, xs4 >= 0, x3 >= 0 addLists(z, z', z'') -{ 13 + x2 + z'' }-> if(1, 1, s127, s803, s804, 1 + p(x1) + s805, 1 + s272 + s806, z'', s993) :|: s993 >= 0, s993 <= z'' + 0 + 1, s803 >= 0, s803 <= z, s804 >= 0, s804 <= z', s805 >= 0, s805 <= z, s806 >= 0, s806 <= z', s272 >= 0, s272 <= x2 + 1, s127 >= 0, s127 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 13 + z'' }-> if(1, 1, s128, s807, s808, 1 + p(x1) + s809, 1 + s273 + s810, z'', s994) :|: s994 >= 0, s994 <= z'' + x2 + 1, s807 >= 0, s807 <= z, s808 >= 0, s808 <= z', s809 >= 0, s809 <= z, s810 >= 0, s810 <= z', s273 >= 0, s273 <= 0 + 1, s128 >= 0, s128 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 1, s129, s811, s812, 1 + p(x1) + s813, 1 + s274 + s814, z'', s995) :|: s995 >= 0, s995 <= z'' + 0 + 1, s811 >= 0, s811 <= z, s812 >= 0, s812 <= z', s813 >= 0, s813 <= z, s814 >= 0, s814 <= z', s274 >= 0, s274 <= 0 + 1, s129 >= 0, s129 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 13 + x1 + z'' }-> if(1, 1, s130, s815, s816, 1 + p(0) + s817, 1 + s275 + s818, z'', s996) :|: s996 >= 0, s996 <= z'' + x2 + 1, s815 >= 0, s815 <= z, s816 >= 0, s816 <= z', s817 >= 0, s817 <= z, s818 >= 0, s818 <= z', s275 >= 0, s275 <= x1 + 1, s130 >= 0, s130 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 + x1 + z'' }-> if(1, 1, s131, s819, s820, 1 + p(0) + s821, 1 + s276 + s822, z'', s997) :|: s997 >= 0, s997 <= z'' + 0 + 1, s819 >= 0, s819 <= z, s820 >= 0, s820 <= z', s821 >= 0, s821 <= z, s822 >= 0, s822 <= z', s276 >= 0, s276 <= x1 + 1, s131 >= 0, s131 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 1, s132, s823, s824, 1 + p(0) + s825, 1 + s277 + s826, z'', s998) :|: s998 >= 0, s998 <= z'' + x1 + 1, s823 >= 0, s823 <= z, s824 >= 0, s824 <= z', s825 >= 0, s825 <= z, s826 >= 0, s826 <= z', s277 >= 0, s277 <= 0 + 1, s132 >= 0, s132 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 1, s133, s827, s828, 1 + p(0) + s829, 1 + s278 + s830, z'', s999) :|: s999 >= 0, s999 <= z'' + 0 + 1, s827 >= 0, s827 <= z, s828 >= 0, s828 <= z', s829 >= 0, s829 <= z, s830 >= 0, s830 <= z', s278 >= 0, s278 <= 0 + 1, s133 >= 0, s133 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + x1 + z'' }-> if(1, 1, s134, s831, s832, 1 + p(x'') + s833, 1 + s279 + s834, z'', s1000) :|: s1000 >= 0, s1000 <= z'' + x2 + 1, s831 >= 0, s831 <= z, s832 >= 0, s832 <= z', s833 >= 0, s833 <= z, s834 >= 0, s834 <= z', s279 >= 0, s279 <= x1 + 1, s134 >= 0, s134 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 + x1 + z'' }-> if(1, 1, s135, s835, s836, 1 + p(x'') + s837, 1 + s280 + s838, z'', s1001) :|: s1001 >= 0, s1001 <= z'' + 0 + 1, s835 >= 0, s835 <= z, s836 >= 0, s836 <= z', s837 >= 0, s837 <= z, s838 >= 0, s838 <= z', s280 >= 0, s280 <= x1 + 1, s135 >= 0, s135 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 1, s136, s839, s840, 1 + p(x'') + s841, 1 + s281 + s842, z'', s1002) :|: s1002 >= 0, s1002 <= z'' + x1 + 1, s839 >= 0, s839 <= z, s840 >= 0, s840 <= z', s841 >= 0, s841 <= z, s842 >= 0, s842 <= z', s281 >= 0, s281 <= 0 + 1, s136 >= 0, s136 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 1, s137, s843, s844, 1 + p(x'') + s845, 1 + s282 + s846, z'', s1003) :|: s1003 >= 0, s1003 <= z'' + 0 + 1, s843 >= 0, s843 <= z, s844 >= 0, s844 <= z', s845 >= 0, s845 <= z, s846 >= 0, s846 <= z', s282 >= 0, s282 <= 0 + 1, s137 >= 0, s137 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(1, 1, s138, s847, s848, 1 + p(0) + s849, 1 + s283 + s850, z'', s1004) :|: s1004 >= 0, s1004 <= z'' + x1 + 1, s847 >= 0, s847 <= z, s848 >= 0, s848 <= z', s849 >= 0, s849 <= z, s850 >= 0, s850 <= z', s283 >= 0, s283 <= x'' + 1, s138 >= 0, s138 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' + z'' }-> if(1, 1, s139, s851, s852, 1 + p(0) + s853, 1 + s284 + s854, z'', s1005) :|: s1005 >= 0, s1005 <= z'' + 0 + 1, s851 >= 0, s851 <= z, s852 >= 0, s852 <= z', s853 >= 0, s853 <= z, s854 >= 0, s854 <= z', s284 >= 0, s284 <= x'' + 1, s139 >= 0, s139 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 1, s140, s855, s856, 1 + p(0) + s857, 1 + s285 + s858, z'', s1006) :|: s1006 >= 0, s1006 <= z'' + x'' + 1, s855 >= 0, s855 <= z, s856 >= 0, s856 <= z', s857 >= 0, s857 <= z, s858 >= 0, s858 <= z', s285 >= 0, s285 <= 0 + 1, s140 >= 0, s140 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(1, 1, s141, s859, s860, 1 + p(0) + s861, 1 + s286 + s862, z'', s1007) :|: s1007 >= 0, s1007 <= z'' + 0 + 1, s859 >= 0, s859 <= z, s860 >= 0, s860 <= z', s861 >= 0, s861 <= z, s862 >= 0, s862 <= z', s286 >= 0, s286 <= 0 + 1, s141 >= 0, s141 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 13 + x1 + z'' }-> if(1, 0, s110, s735, s736, 1 + p(x'') + s737, 1 + s255 + s738, z'', s976) :|: s976 >= 0, s976 <= z'' + x2 + 1, s735 >= 0, s735 <= z, s736 >= 0, s736 <= z', s737 >= 0, s737 <= z, s738 >= 0, s738 <= z', s255 >= 0, s255 <= x1 + 1, s110 >= 0, s110 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 + x1 + z'' }-> if(1, 0, s111, s739, s740, 1 + p(x'') + s741, 1 + s256 + s742, z'', s977) :|: s977 >= 0, s977 <= z'' + 0 + 1, s739 >= 0, s739 <= z, s740 >= 0, s740 <= z', s741 >= 0, s741 <= z, s742 >= 0, s742 <= z', s256 >= 0, s256 <= x1 + 1, s111 >= 0, s111 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 0, s112, s743, s744, 1 + p(x'') + s745, 1 + s257 + s746, z'', s978) :|: s978 >= 0, s978 <= z'' + x1 + 1, s743 >= 0, s743 <= z, s744 >= 0, s744 <= z', s745 >= 0, s745 <= z, s746 >= 0, s746 <= z', s257 >= 0, s257 <= 0 + 1, s112 >= 0, s112 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 0, s113, s747, s748, 1 + p(x'') + s749, 1 + s258 + s750, z'', s979) :|: s979 >= 0, s979 <= z'' + 0 + 1, s747 >= 0, s747 <= z, s748 >= 0, s748 <= z', s749 >= 0, s749 <= z, s750 >= 0, s750 <= z', s258 >= 0, s258 <= 0 + 1, s113 >= 0, s113 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(1, 0, s114, s751, s752, 1 + p(0) + s753, 1 + s259 + s754, z'', s980) :|: s980 >= 0, s980 <= z'' + x1 + 1, s751 >= 0, s751 <= z, s752 >= 0, s752 <= z', s753 >= 0, s753 <= z, s754 >= 0, s754 <= z', s259 >= 0, s259 <= x'' + 1, s114 >= 0, s114 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' + z'' }-> if(1, 0, s115, s755, s756, 1 + p(0) + s757, 1 + s260 + s758, z'', s981) :|: s981 >= 0, s981 <= z'' + 0 + 1, s755 >= 0, s755 <= z, s756 >= 0, s756 <= z', s757 >= 0, s757 <= z, s758 >= 0, s758 <= z', s260 >= 0, s260 <= x'' + 1, s115 >= 0, s115 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 0, s116, s759, s760, 1 + p(0) + s761, 1 + s261 + s762, z'', s982) :|: s982 >= 0, s982 <= z'' + x'' + 1, s759 >= 0, s759 <= z, s760 >= 0, s760 <= z', s761 >= 0, s761 <= z, s762 >= 0, s762 <= z', s261 >= 0, s261 <= 0 + 1, s116 >= 0, s116 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(1, 0, s117, s763, s764, 1 + p(0) + s765, 1 + s262 + s766, z'', s983) :|: s983 >= 0, s983 <= z'' + 0 + 1, s763 >= 0, s763 <= z, s764 >= 0, s764 <= z', s765 >= 0, s765 <= z, s766 >= 0, s766 <= z', s262 >= 0, s262 <= 0 + 1, s117 >= 0, s117 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(1, 0, s118, s767, s768, 1 + p(x') + s769, 1 + s263 + s770, z'', s984) :|: s984 >= 0, s984 <= z'' + x1 + 1, s767 >= 0, s767 <= z, s768 >= 0, s768 <= z', s769 >= 0, s769 <= z, s770 >= 0, s770 <= z', s263 >= 0, s263 <= x'' + 1, s118 >= 0, s118 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' + z'' }-> if(1, 0, s119, s771, s772, 1 + p(x') + s773, 1 + s264 + s774, z'', s985) :|: s985 >= 0, s985 <= z'' + 0 + 1, s771 >= 0, s771 <= z, s772 >= 0, s772 <= z', s773 >= 0, s773 <= z, s774 >= 0, s774 <= z', s264 >= 0, s264 <= x'' + 1, s119 >= 0, s119 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 0, s120, s775, s776, 1 + p(x') + s777, 1 + s265 + s778, z'', s986) :|: s986 >= 0, s986 <= z'' + x'' + 1, s775 >= 0, s775 <= z, s776 >= 0, s776 <= z', s777 >= 0, s777 <= z, s778 >= 0, s778 <= z', s265 >= 0, s265 <= 0 + 1, s120 >= 0, s120 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(1, 0, s121, s779, s780, 1 + p(x') + s781, 1 + s266 + s782, z'', s987) :|: s987 >= 0, s987 <= z'' + 0 + 1, s779 >= 0, s779 <= z, s780 >= 0, s780 <= z', s781 >= 0, s781 <= z, s782 >= 0, s782 <= z', s266 >= 0, s266 <= 0 + 1, s121 >= 0, s121 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(1, 0, s122, s783, s784, 1 + p(0) + s785, 1 + s267 + s786, z'', s988) :|: s988 >= 0, s988 <= z'' + x'' + 1, s783 >= 0, s783 <= z, s784 >= 0, s784 <= z', s785 >= 0, s785 <= z, s786 >= 0, s786 <= z', s267 >= 0, s267 <= x' + 1, s122 >= 0, s122 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' + z'' }-> if(1, 0, s123, s787, s788, 1 + p(0) + s789, 1 + s268 + s790, z'', s989) :|: s989 >= 0, s989 <= z'' + 0 + 1, s787 >= 0, s787 <= z, s788 >= 0, s788 <= z', s789 >= 0, s789 <= z, s790 >= 0, s790 <= z', s268 >= 0, s268 <= x' + 1, s123 >= 0, s123 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(1, 0, s124, s791, s792, 1 + p(0) + s793, 1 + s269 + s794, z'', s990) :|: s990 >= 0, s990 <= z'' + x' + 1, s791 >= 0, s791 <= z, s792 >= 0, s792 <= z', s793 >= 0, s793 <= z, s794 >= 0, s794 <= z', s269 >= 0, s269 <= 0 + 1, s124 >= 0, s124 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(1, 0, s125, s795, s796, 1 + p(0) + s797, 1 + s270 + s798, z'', s991) :|: s991 >= 0, s991 <= z'' + 0 + 1, s795 >= 0, s795 <= z, s796 >= 0, s796 <= z', s797 >= 0, s797 <= z, s798 >= 0, s798 <= z', s270 >= 0, s270 <= 0 + 1, s125 >= 0, s125 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(0, 2, s46, s479, s480, 1 + p(x') + s481, 1 + s191 + s482, z'', s912) :|: s912 >= 0, s912 <= z'' + x1 + 1, s479 >= 0, s479 <= z, s480 >= 0, s480 <= z', s481 >= 0, s481 <= z, s482 >= 0, s482 <= z', s191 >= 0, s191 <= x'' + 1, s46 >= 0, s46 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(0, 2, s47, s483, s484, 1 + p(x') + s485, 1 + s192 + s486, z'', s913) :|: s913 >= 0, s913 <= z'' + 0 + 1, s483 >= 0, s483 <= z, s484 >= 0, s484 <= z', s485 >= 0, s485 <= z, s486 >= 0, s486 <= z', s192 >= 0, s192 <= x'' + 1, s47 >= 0, s47 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(0, 2, s48, s487, s488, 1 + p(x') + s489, 1 + s193 + s490, z'', s914) :|: s914 >= 0, s914 <= z'' + x'' + 1, s487 >= 0, s487 <= z, s488 >= 0, s488 <= z', s489 >= 0, s489 <= z, s490 >= 0, s490 <= z', s193 >= 0, s193 <= 0 + 1, s48 >= 0, s48 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 2, s49, s491, s492, 1 + p(x') + s493, 1 + s194 + s494, z'', s915) :|: s915 >= 0, s915 <= z'' + 0 + 1, s491 >= 0, s491 <= z, s492 >= 0, s492 <= z', s493 >= 0, s493 <= z, s494 >= 0, s494 <= z', s194 >= 0, s194 <= 0 + 1, s49 >= 0, s49 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(0, 2, s50, s495, s496, 1 + p(0) + s497, 1 + s195 + s498, z'', s916) :|: s916 >= 0, s916 <= z'' + x'' + 1, s495 >= 0, s495 <= z, s496 >= 0, s496 <= z', s497 >= 0, s497 <= z, s498 >= 0, s498 <= z', s195 >= 0, s195 <= x' + 1, s50 >= 0, s50 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(0, 2, s51, s499, s500, 1 + p(0) + s501, 1 + s196 + s502, z'', s917) :|: s917 >= 0, s917 <= z'' + 0 + 1, s499 >= 0, s499 <= z, s500 >= 0, s500 <= z', s501 >= 0, s501 <= z, s502 >= 0, s502 <= z', s196 >= 0, s196 <= x' + 1, s51 >= 0, s51 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 2, s52, s503, s504, 1 + p(0) + s505, 1 + s197 + s506, z'', s918) :|: s918 >= 0, s918 <= z'' + x' + 1, s503 >= 0, s503 <= z, s504 >= 0, s504 <= z', s505 >= 0, s505 <= z, s506 >= 0, s506 <= z', s197 >= 0, s197 <= 0 + 1, s52 >= 0, s52 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 2, s53, s507, s508, 1 + p(0) + s509, 1 + s198 + s510, z'', s919) :|: s919 >= 0, s919 <= z'' + 0 + 1, s507 >= 0, s507 <= z, s508 >= 0, s508 <= z', s509 >= 0, s509 <= z, s510 >= 0, s510 <= z', s198 >= 0, s198 <= 0 + 1, s53 >= 0, s53 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(0, 2, s54, s511, s512, 1 + p(x) + s513, 1 + s199 + s514, z'', s920) :|: s920 >= 0, s920 <= z'' + x'' + 1, s511 >= 0, s511 <= z, s512 >= 0, s512 <= z', s513 >= 0, s513 <= z, s514 >= 0, s514 <= z', s199 >= 0, s199 <= x' + 1, s54 >= 0, s54 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(0, 2, s55, s515, s516, 1 + p(x) + s517, 1 + s200 + s518, z'', s921) :|: s921 >= 0, s921 <= z'' + 0 + 1, s515 >= 0, s515 <= z, s516 >= 0, s516 <= z', s517 >= 0, s517 <= z, s518 >= 0, s518 <= z', s200 >= 0, s200 <= x' + 1, s55 >= 0, s55 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 2, s56, s519, s520, 1 + p(x) + s521, 1 + s201 + s522, z'', s922) :|: s922 >= 0, s922 <= z'' + x' + 1, s519 >= 0, s519 <= z, s520 >= 0, s520 <= z', s521 >= 0, s521 <= z, s522 >= 0, s522 <= z', s201 >= 0, s201 <= 0 + 1, s56 >= 0, s56 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 2, s57, s523, s524, 1 + p(x) + s525, 1 + s202 + s526, z'', s923) :|: s923 >= 0, s923 <= z'' + 0 + 1, s523 >= 0, s523 <= z, s524 >= 0, s524 <= z', s525 >= 0, s525 <= z, s526 >= 0, s526 <= z', s202 >= 0, s202 <= 0 + 1, s57 >= 0, s57 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 11 + x + z'' }-> if(0, 2, s58, s527, s528, 1 + p(0) + s529, 1 + s203 + s530, z'', s924) :|: s924 >= 0, s924 <= z'' + x' + 1, s527 >= 0, s527 <= z, s528 >= 0, s528 <= z', s529 >= 0, s529 <= z, s530 >= 0, s530 <= z', s203 >= 0, s203 <= x + 1, s58 >= 0, s58 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + x + z'' }-> if(0, 2, s59, s531, s532, 1 + p(0) + s533, 1 + s204 + s534, z'', s925) :|: s925 >= 0, s925 <= z'' + 0 + 1, s531 >= 0, s531 <= z, s532 >= 0, s532 <= z', s533 >= 0, s533 <= z, s534 >= 0, s534 <= z', s204 >= 0, s204 <= x + 1, s59 >= 0, s59 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 2, s60, s535, s536, 1 + p(0) + s537, 1 + s205 + s538, z'', s926) :|: s926 >= 0, s926 <= z'' + x + 1, s535 >= 0, s535 <= z, s536 >= 0, s536 <= z', s537 >= 0, s537 <= z, s538 >= 0, s538 <= z', s205 >= 0, s205 <= 0 + 1, s60 >= 0, s60 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(0, 2, s61, s539, s540, 1 + p(0) + s541, 1 + s206 + s542, z'', s927) :|: s927 >= 0, s927 <= z'' + 0 + 1, s539 >= 0, s539 <= z, s540 >= 0, s540 <= z', s541 >= 0, s541 <= z, s542 >= 0, s542 <= z', s206 >= 0, s206 <= 0 + 1, s61 >= 0, s61 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 addLists(z, z', z'') -{ 13 + x1 + z'' }-> if(0, 1, s78, s607, s608, 1 + p(x'') + s609, 1 + s223 + s610, z'', s944) :|: s944 >= 0, s944 <= z'' + x2 + 1, s607 >= 0, s607 <= z, s608 >= 0, s608 <= z', s609 >= 0, s609 <= z, s610 >= 0, s610 <= z', s223 >= 0, s223 <= x1 + 1, s78 >= 0, s78 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 + x1 + z'' }-> if(0, 1, s79, s611, s612, 1 + p(x'') + s613, 1 + s224 + s614, z'', s945) :|: s945 >= 0, s945 <= z'' + 0 + 1, s611 >= 0, s611 <= z, s612 >= 0, s612 <= z', s613 >= 0, s613 <= z, s614 >= 0, s614 <= z', s224 >= 0, s224 <= x1 + 1, s79 >= 0, s79 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(0, 1, s80, s615, s616, 1 + p(x'') + s617, 1 + s225 + s618, z'', s946) :|: s946 >= 0, s946 <= z'' + x1 + 1, s615 >= 0, s615 <= z, s616 >= 0, s616 <= z', s617 >= 0, s617 <= z, s618 >= 0, s618 <= z', s225 >= 0, s225 <= 0 + 1, s80 >= 0, s80 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 1, s81, s619, s620, 1 + p(x'') + s621, 1 + s226 + s622, z'', s947) :|: s947 >= 0, s947 <= z'' + 0 + 1, s619 >= 0, s619 <= z, s620 >= 0, s620 <= z', s621 >= 0, s621 <= z, s622 >= 0, s622 <= z', s226 >= 0, s226 <= 0 + 1, s81 >= 0, s81 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(0, 1, s82, s623, s624, 1 + p(0) + s625, 1 + s227 + s626, z'', s948) :|: s948 >= 0, s948 <= z'' + x1 + 1, s623 >= 0, s623 <= z, s624 >= 0, s624 <= z', s625 >= 0, s625 <= z, s626 >= 0, s626 <= z', s227 >= 0, s227 <= x'' + 1, s82 >= 0, s82 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' + z'' }-> if(0, 1, s83, s627, s628, 1 + p(0) + s629, 1 + s228 + s630, z'', s949) :|: s949 >= 0, s949 <= z'' + 0 + 1, s627 >= 0, s627 <= z, s628 >= 0, s628 <= z', s629 >= 0, s629 <= z, s630 >= 0, s630 <= z', s228 >= 0, s228 <= x'' + 1, s83 >= 0, s83 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 1, s84, s631, s632, 1 + p(0) + s633, 1 + s229 + s634, z'', s950) :|: s950 >= 0, s950 <= z'' + x'' + 1, s631 >= 0, s631 <= z, s632 >= 0, s632 <= z', s633 >= 0, s633 <= z, s634 >= 0, s634 <= z', s229 >= 0, s229 <= 0 + 1, s84 >= 0, s84 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 1, s85, s635, s636, 1 + p(0) + s637, 1 + s230 + s638, z'', s951) :|: s951 >= 0, s951 <= z'' + 0 + 1, s635 >= 0, s635 <= z, s636 >= 0, s636 <= z', s637 >= 0, s637 <= z, s638 >= 0, s638 <= z', s230 >= 0, s230 <= 0 + 1, s85 >= 0, s85 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(0, 1, s86, s639, s640, 1 + p(x') + s641, 1 + s231 + s642, z'', s952) :|: s952 >= 0, s952 <= z'' + x1 + 1, s639 >= 0, s639 <= z, s640 >= 0, s640 <= z', s641 >= 0, s641 <= z, s642 >= 0, s642 <= z', s231 >= 0, s231 <= x'' + 1, s86 >= 0, s86 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' + z'' }-> if(0, 1, s87, s643, s644, 1 + p(x') + s645, 1 + s232 + s646, z'', s953) :|: s953 >= 0, s953 <= z'' + 0 + 1, s643 >= 0, s643 <= z, s644 >= 0, s644 <= z', s645 >= 0, s645 <= z, s646 >= 0, s646 <= z', s232 >= 0, s232 <= x'' + 1, s87 >= 0, s87 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 1, s88, s647, s648, 1 + p(x') + s649, 1 + s233 + s650, z'', s954) :|: s954 >= 0, s954 <= z'' + x'' + 1, s647 >= 0, s647 <= z, s648 >= 0, s648 <= z', s649 >= 0, s649 <= z, s650 >= 0, s650 <= z', s233 >= 0, s233 <= 0 + 1, s88 >= 0, s88 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 1, s89, s651, s652, 1 + p(x') + s653, 1 + s234 + s654, z'', s955) :|: s955 >= 0, s955 <= z'' + 0 + 1, s651 >= 0, s651 <= z, s652 >= 0, s652 <= z', s653 >= 0, s653 <= z, s654 >= 0, s654 <= z', s234 >= 0, s234 <= 0 + 1, s89 >= 0, s89 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(0, 1, s90, s655, s656, 1 + p(0) + s657, 1 + s235 + s658, z'', s956) :|: s956 >= 0, s956 <= z'' + x'' + 1, s655 >= 0, s655 <= z, s656 >= 0, s656 <= z', s657 >= 0, s657 <= z, s658 >= 0, s658 <= z', s235 >= 0, s235 <= x' + 1, s90 >= 0, s90 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' + z'' }-> if(0, 1, s91, s659, s660, 1 + p(0) + s661, 1 + s236 + s662, z'', s957) :|: s957 >= 0, s957 <= z'' + 0 + 1, s659 >= 0, s659 <= z, s660 >= 0, s660 <= z', s661 >= 0, s661 <= z, s662 >= 0, s662 <= z', s236 >= 0, s236 <= x' + 1, s91 >= 0, s91 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 1, s92, s663, s664, 1 + p(0) + s665, 1 + s237 + s666, z'', s958) :|: s958 >= 0, s958 <= z'' + x' + 1, s663 >= 0, s663 <= z, s664 >= 0, s664 <= z', s665 >= 0, s665 <= z, s666 >= 0, s666 <= z', s237 >= 0, s237 <= 0 + 1, s92 >= 0, s92 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(0, 1, s93, s667, s668, 1 + p(0) + s669, 1 + s238 + s670, z'', s959) :|: s959 >= 0, s959 <= z'' + 0 + 1, s667 >= 0, s667 <= z, s668 >= 0, s668 <= z', s669 >= 0, s669 <= z, s670 >= 0, s670 <= z', s238 >= 0, s238 <= 0 + 1, s93 >= 0, s93 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(0, 0, s62, s543, s544, 1 + p(x') + s545, 1 + s207 + s546, z'', s928) :|: s928 >= 0, s928 <= z'' + x1 + 1, s543 >= 0, s543 <= z, s544 >= 0, s544 <= z', s545 >= 0, s545 <= z, s546 >= 0, s546 <= z', s207 >= 0, s207 <= x'' + 1, s62 >= 0, s62 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' + z'' }-> if(0, 0, s63, s547, s548, 1 + p(x') + s549, 1 + s208 + s550, z'', s929) :|: s929 >= 0, s929 <= z'' + 0 + 1, s547 >= 0, s547 <= z, s548 >= 0, s548 <= z', s549 >= 0, s549 <= z, s550 >= 0, s550 <= z', s208 >= 0, s208 <= x'' + 1, s63 >= 0, s63 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 0, s64, s551, s552, 1 + p(x') + s553, 1 + s209 + s554, z'', s930) :|: s930 >= 0, s930 <= z'' + x'' + 1, s551 >= 0, s551 <= z, s552 >= 0, s552 <= z', s553 >= 0, s553 <= z, s554 >= 0, s554 <= z', s209 >= 0, s209 <= 0 + 1, s64 >= 0, s64 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 0, s65, s555, s556, 1 + p(x') + s557, 1 + s210 + s558, z'', s931) :|: s931 >= 0, s931 <= z'' + 0 + 1, s555 >= 0, s555 <= z, s556 >= 0, s556 <= z', s557 >= 0, s557 <= z, s558 >= 0, s558 <= z', s210 >= 0, s210 <= 0 + 1, s65 >= 0, s65 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(0, 0, s66, s559, s560, 1 + p(0) + s561, 1 + s211 + s562, z'', s932) :|: s932 >= 0, s932 <= z'' + x'' + 1, s559 >= 0, s559 <= z, s560 >= 0, s560 <= z', s561 >= 0, s561 <= z, s562 >= 0, s562 <= z', s211 >= 0, s211 <= x' + 1, s66 >= 0, s66 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' + z'' }-> if(0, 0, s67, s563, s564, 1 + p(0) + s565, 1 + s212 + s566, z'', s933) :|: s933 >= 0, s933 <= z'' + 0 + 1, s563 >= 0, s563 <= z, s564 >= 0, s564 <= z', s565 >= 0, s565 <= z, s566 >= 0, s566 <= z', s212 >= 0, s212 <= x' + 1, s67 >= 0, s67 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 0, s68, s567, s568, 1 + p(0) + s569, 1 + s213 + s570, z'', s934) :|: s934 >= 0, s934 <= z'' + x' + 1, s567 >= 0, s567 <= z, s568 >= 0, s568 <= z', s569 >= 0, s569 <= z, s570 >= 0, s570 <= z', s213 >= 0, s213 <= 0 + 1, s68 >= 0, s68 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(0, 0, s69, s571, s572, 1 + p(0) + s573, 1 + s214 + s574, z'', s935) :|: s935 >= 0, s935 <= z'' + 0 + 1, s571 >= 0, s571 <= z, s572 >= 0, s572 <= z', s573 >= 0, s573 <= z, s574 >= 0, s574 <= z', s214 >= 0, s214 <= 0 + 1, s69 >= 0, s69 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(0, 0, s70, s575, s576, 1 + p(x) + s577, 1 + s215 + s578, z'', s936) :|: s936 >= 0, s936 <= z'' + x'' + 1, s575 >= 0, s575 <= z, s576 >= 0, s576 <= z', s577 >= 0, s577 <= z, s578 >= 0, s578 <= z', s215 >= 0, s215 <= x' + 1, s70 >= 0, s70 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' + z'' }-> if(0, 0, s71, s579, s580, 1 + p(x) + s581, 1 + s216 + s582, z'', s937) :|: s937 >= 0, s937 <= z'' + 0 + 1, s579 >= 0, s579 <= z, s580 >= 0, s580 <= z', s581 >= 0, s581 <= z, s582 >= 0, s582 <= z', s216 >= 0, s216 <= x' + 1, s71 >= 0, s71 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 0, s72, s583, s584, 1 + p(x) + s585, 1 + s217 + s586, z'', s938) :|: s938 >= 0, s938 <= z'' + x' + 1, s583 >= 0, s583 <= z, s584 >= 0, s584 <= z', s585 >= 0, s585 <= z, s586 >= 0, s586 <= z', s217 >= 0, s217 <= 0 + 1, s72 >= 0, s72 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(0, 0, s73, s587, s588, 1 + p(x) + s589, 1 + s218 + s590, z'', s939) :|: s939 >= 0, s939 <= z'' + 0 + 1, s587 >= 0, s587 <= z, s588 >= 0, s588 <= z', s589 >= 0, s589 <= z, s590 >= 0, s590 <= z', s218 >= 0, s218 <= 0 + 1, s73 >= 0, s73 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 10 + x + z'' }-> if(0, 0, s74, s591, s592, 1 + p(0) + s593, 1 + s219 + s594, z'', s940) :|: s940 >= 0, s940 <= z'' + x' + 1, s591 >= 0, s591 <= z, s592 >= 0, s592 <= z', s593 >= 0, s593 <= z, s594 >= 0, s594 <= z', s219 >= 0, s219 <= x + 1, s74 >= 0, s74 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 + x + z'' }-> if(0, 0, s75, s595, s596, 1 + p(0) + s597, 1 + s220 + s598, z'', s941) :|: s941 >= 0, s941 <= z'' + 0 + 1, s595 >= 0, s595 <= z, s596 >= 0, s596 <= z', s597 >= 0, s597 <= z, s598 >= 0, s598 <= z', s220 >= 0, s220 <= x + 1, s75 >= 0, s75 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(0, 0, s76, s599, s600, 1 + p(0) + s601, 1 + s221 + s602, z'', s942) :|: s942 >= 0, s942 <= z'' + x + 1, s599 >= 0, s599 <= z, s600 >= 0, s600 <= z', s601 >= 0, s601 <= z, s602 >= 0, s602 <= z', s221 >= 0, s221 <= 0 + 1, s76 >= 0, s76 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 8 + z'' }-> if(0, 0, s77, s603, s604, 1 + p(0) + s605, 1 + s222 + s606, z'', s943) :|: s943 >= 0, s943 <= z'' + 0 + 1, s603 >= 0, s603 <= z, s604 >= 0, s604 <= z', s605 >= 0, s605 <= z, s606 >= 0, s606 <= z', s222 >= 0, s222 <= 0 + 1, s77 >= 0, s77 <= 2, z >= 0, z' >= 0, z'' >= 0 append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 append(z, z') -{ 2 + ys }-> 1 + y + s863 :|: s863 >= 0, s863 <= ys + z' + 1, ys >= 0, y >= 0, z' >= 0, z = 1 + y + ys append(z, z') -{ 1 }-> 1 + z' + 1 :|: z = 1, z' >= 0 head(z) -{ 1 }-> x :|: z = 1 + x + xs, xs >= 0, x >= 0 head(z) -{ 0 }-> 0 :|: z >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> z5 :|: z1 >= 0, z' = 2, z5 >= 0, z6 >= 0, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z1, z2, z6) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 2, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z3, z4, z5) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 1, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z5 >= 0, z6 >= 0, z' = 1, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z' = 2, z = 1, z5 >= 0, z6 >= 0, z4 >= 0, z'' >= 0, z3 >= 0, z2 >= 0 inc(z) -{ 1 + z }-> 1 + s142 :|: s142 >= 0, s142 <= z - 1 + 1, z - 1 >= 0 inc(z) -{ 1 }-> 1 + 0 :|: z = 0 isEmpty(z) -{ 1 }-> 2 :|: z = 1 isEmpty(z) -{ 1 }-> 1 :|: z = 1 + x + xs, xs >= 0, x >= 0 isEmpty(z) -{ 0 }-> 0 :|: z >= 0 isZero(z) -{ 1 }-> 2 :|: z = 0 isZero(z) -{ 1 }-> 1 :|: z - 1 >= 0 p(z) -{ 1 }-> 0 :|: z = 1 + 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 1 }-> 1 + p(1 + (z - 2)) :|: z - 2 >= 0 tail(z) -{ 1 }-> xs :|: z = 1 + x + xs, xs >= 0, x >= 0 tail(z) -{ 1 }-> 1 :|: z = 1 tail(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {head}, {p}, {addLists,if}, {addList} Previous analysis results are: isEmpty: runtime: O(1) [1], size: O(1) [2] isZero: runtime: O(1) [1], size: O(1) [2] inc: runtime: O(n^1) [1 + z], size: O(n^1) [1 + z] tail: runtime: O(1) [1], size: O(n^1) [z] append: runtime: O(n^1) [1 + z], size: O(n^1) [1 + z + z'] ---------------------------------------- (53) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using KoAT for: head after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: z ---------------------------------------- (54) Obligation: Complexity RNTS consisting of the following rules: addList(z, z') -{ 1 }-> addLists(z, z', 1) :|: z >= 0, z' >= 0 addLists(z, z', z'') -{ 14 + x'' + z'' }-> if(2, 2, s, s287, s288, 1 + p(x') + s289, 1 + s143 + s290, z'', s864) :|: s864 >= 0, s864 <= z'' + x1 + 1, s287 >= 0, s287 <= z, s288 >= 0, s288 <= z', s289 >= 0, s289 <= z, s290 >= 0, s290 <= z', s143 >= 0, s143 <= x'' + 1, s >= 0, s <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(2, 2, s', s291, s292, 1 + p(x') + s293, 1 + s144 + s294, z'', s865) :|: s865 >= 0, s865 <= z'' + 0 + 1, s291 >= 0, s291 <= z, s292 >= 0, s292 <= z', s293 >= 0, s293 <= z, s294 >= 0, s294 <= z', s144 >= 0, s144 <= x'' + 1, s' >= 0, s' <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + z'' }-> if(2, 2, s'', s295, s296, 1 + p(x') + s297, 1 + s145 + s298, z'', s866) :|: s866 >= 0, s866 <= z'' + x'' + 1, s295 >= 0, s295 <= z, s296 >= 0, s296 <= z', s297 >= 0, s297 <= z, s298 >= 0, s298 <= z', s145 >= 0, s145 <= 0 + 1, s'' >= 0, s'' <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 2, s1, s299, s300, 1 + p(x') + s301, 1 + s146 + s302, z'', s867) :|: s867 >= 0, s867 <= z'' + 0 + 1, s299 >= 0, s299 <= z, s300 >= 0, s300 <= z', s301 >= 0, s301 <= z, s302 >= 0, s302 <= z', s146 >= 0, s146 <= 0 + 1, s1 >= 0, s1 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x + z'' }-> if(2, 2, s10, s335, s336, 1 + p(0) + s337, 1 + s155 + s338, z'', s876) :|: s876 >= 0, s876 <= z'' + x' + 1, s335 >= 0, s335 <= z, s336 >= 0, s336 <= z', s337 >= 0, s337 <= z, s338 >= 0, s338 <= z', s155 >= 0, s155 <= x + 1, s10 >= 0, s10 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x + z'' }-> if(2, 2, s11, s339, s340, 1 + p(0) + s341, 1 + s156 + s342, z'', s877) :|: s877 >= 0, s877 <= z'' + 0 + 1, s339 >= 0, s339 <= z, s340 >= 0, s340 <= z', s341 >= 0, s341 <= z, s342 >= 0, s342 <= z', s156 >= 0, s156 <= x + 1, s11 >= 0, s11 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 2, s12, s343, s344, 1 + p(0) + s345, 1 + s157 + s346, z'', s878) :|: s878 >= 0, s878 <= z'' + x + 1, s343 >= 0, s343 <= z, s344 >= 0, s344 <= z', s345 >= 0, s345 <= z, s346 >= 0, s346 <= z', s157 >= 0, s157 <= 0 + 1, s12 >= 0, s12 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(2, 2, s13, s347, s348, 1 + p(0) + s349, 1 + s158 + s350, z'', s879) :|: s879 >= 0, s879 <= z'' + 0 + 1, s347 >= 0, s347 <= z, s348 >= 0, s348 <= z', s349 >= 0, s349 <= z, s350 >= 0, s350 <= z', s158 >= 0, s158 <= 0 + 1, s13 >= 0, s13 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 addLists(z, z', z'') -{ 13 + x' + z'' }-> if(2, 2, s2, s303, s304, 1 + p(0) + s305, 1 + s147 + s306, z'', s868) :|: s868 >= 0, s868 <= z'' + x'' + 1, s303 >= 0, s303 <= z, s304 >= 0, s304 <= z', s305 >= 0, s305 <= z, s306 >= 0, s306 <= z', s147 >= 0, s147 <= x' + 1, s2 >= 0, s2 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(2, 2, s3, s307, s308, 1 + p(0) + s309, 1 + s148 + s310, z'', s869) :|: s869 >= 0, s869 <= z'' + 0 + 1, s307 >= 0, s307 <= z, s308 >= 0, s308 <= z', s309 >= 0, s309 <= z, s310 >= 0, s310 <= z', s148 >= 0, s148 <= x' + 1, s3 >= 0, s3 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 2, s4, s311, s312, 1 + p(0) + s313, 1 + s149 + s314, z'', s870) :|: s870 >= 0, s870 <= z'' + x' + 1, s311 >= 0, s311 <= z, s312 >= 0, s312 <= z', s313 >= 0, s313 <= z, s314 >= 0, s314 <= z', s149 >= 0, s149 <= 0 + 1, s4 >= 0, s4 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 2, s5, s315, s316, 1 + p(0) + s317, 1 + s150 + s318, z'', s871) :|: s871 >= 0, s871 <= z'' + 0 + 1, s315 >= 0, s315 <= z, s316 >= 0, s316 <= z', s317 >= 0, s317 <= z, s318 >= 0, s318 <= z', s150 >= 0, s150 <= 0 + 1, s5 >= 0, s5 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 13 + x' + z'' }-> if(2, 2, s6, s319, s320, 1 + p(x) + s321, 1 + s151 + s322, z'', s872) :|: s872 >= 0, s872 <= z'' + x'' + 1, s319 >= 0, s319 <= z, s320 >= 0, s320 <= z', s321 >= 0, s321 <= z, s322 >= 0, s322 <= z', s151 >= 0, s151 <= x' + 1, s6 >= 0, s6 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(2, 2, s7, s323, s324, 1 + p(x) + s325, 1 + s152 + s326, z'', s873) :|: s873 >= 0, s873 <= z'' + 0 + 1, s323 >= 0, s323 <= z, s324 >= 0, s324 <= z', s325 >= 0, s325 <= z, s326 >= 0, s326 <= z', s152 >= 0, s152 <= x' + 1, s7 >= 0, s7 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 2, s8, s327, s328, 1 + p(x) + s329, 1 + s153 + s330, z'', s874) :|: s874 >= 0, s874 <= z'' + x' + 1, s327 >= 0, s327 <= z, s328 >= 0, s328 <= z', s329 >= 0, s329 <= z, s330 >= 0, s330 <= z', s153 >= 0, s153 <= 0 + 1, s8 >= 0, s8 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 2, s9, s331, s332, 1 + p(x) + s333, 1 + s154 + s334, z'', s875) :|: s875 >= 0, s875 <= z'' + 0 + 1, s331 >= 0, s331 <= z, s332 >= 0, s332 <= z', s333 >= 0, s333 <= z, s334 >= 0, s334 <= z', s154 >= 0, s154 <= 0 + 1, s9 >= 0, s9 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 14 + x1 + z'' }-> if(2, 1, s30, s415, s416, 1 + p(x'') + s417, 1 + s175 + s418, z'', s896) :|: s896 >= 0, s896 <= z'' + x2 + 1, s415 >= 0, s415 <= z, s416 >= 0, s416 <= z', s417 >= 0, s417 <= z, s418 >= 0, s418 <= z', s175 >= 0, s175 <= x1 + 1, s30 >= 0, s30 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 13 + x1 + z'' }-> if(2, 1, s31, s419, s420, 1 + p(x'') + s421, 1 + s176 + s422, z'', s897) :|: s897 >= 0, s897 <= z'' + 0 + 1, s419 >= 0, s419 <= z, s420 >= 0, s420 <= z', s421 >= 0, s421 <= z, s422 >= 0, s422 <= z', s176 >= 0, s176 <= x1 + 1, s31 >= 0, s31 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 13 + z'' }-> if(2, 1, s32, s423, s424, 1 + p(x'') + s425, 1 + s177 + s426, z'', s898) :|: s898 >= 0, s898 <= z'' + x1 + 1, s423 >= 0, s423 <= z, s424 >= 0, s424 <= z', s425 >= 0, s425 <= z, s426 >= 0, s426 <= z', s177 >= 0, s177 <= 0 + 1, s32 >= 0, s32 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 1, s33, s427, s428, 1 + p(x'') + s429, 1 + s178 + s430, z'', s899) :|: s899 >= 0, s899 <= z'' + 0 + 1, s427 >= 0, s427 <= z, s428 >= 0, s428 <= z', s429 >= 0, s429 <= z, s430 >= 0, s430 <= z', s178 >= 0, s178 <= 0 + 1, s33 >= 0, s33 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(2, 1, s34, s431, s432, 1 + p(0) + s433, 1 + s179 + s434, z'', s900) :|: s900 >= 0, s900 <= z'' + x1 + 1, s431 >= 0, s431 <= z, s432 >= 0, s432 <= z', s433 >= 0, s433 <= z, s434 >= 0, s434 <= z', s179 >= 0, s179 <= x'' + 1, s34 >= 0, s34 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(2, 1, s35, s435, s436, 1 + p(0) + s437, 1 + s180 + s438, z'', s901) :|: s901 >= 0, s901 <= z'' + 0 + 1, s435 >= 0, s435 <= z, s436 >= 0, s436 <= z', s437 >= 0, s437 <= z, s438 >= 0, s438 <= z', s180 >= 0, s180 <= x'' + 1, s35 >= 0, s35 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 1, s36, s439, s440, 1 + p(0) + s441, 1 + s181 + s442, z'', s902) :|: s902 >= 0, s902 <= z'' + x'' + 1, s439 >= 0, s439 <= z, s440 >= 0, s440 <= z', s441 >= 0, s441 <= z, s442 >= 0, s442 <= z', s181 >= 0, s181 <= 0 + 1, s36 >= 0, s36 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 1, s37, s443, s444, 1 + p(0) + s445, 1 + s182 + s446, z'', s903) :|: s903 >= 0, s903 <= z'' + 0 + 1, s443 >= 0, s443 <= z, s444 >= 0, s444 <= z', s445 >= 0, s445 <= z, s446 >= 0, s446 <= z', s182 >= 0, s182 <= 0 + 1, s37 >= 0, s37 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(2, 1, s38, s447, s448, 1 + p(x') + s449, 1 + s183 + s450, z'', s904) :|: s904 >= 0, s904 <= z'' + x1 + 1, s447 >= 0, s447 <= z, s448 >= 0, s448 <= z', s449 >= 0, s449 <= z, s450 >= 0, s450 <= z', s183 >= 0, s183 <= x'' + 1, s38 >= 0, s38 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(2, 1, s39, s451, s452, 1 + p(x') + s453, 1 + s184 + s454, z'', s905) :|: s905 >= 0, s905 <= z'' + 0 + 1, s451 >= 0, s451 <= z, s452 >= 0, s452 <= z', s453 >= 0, s453 <= z, s454 >= 0, s454 <= z', s184 >= 0, s184 <= x'' + 1, s39 >= 0, s39 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 1, s40, s455, s456, 1 + p(x') + s457, 1 + s185 + s458, z'', s906) :|: s906 >= 0, s906 <= z'' + x'' + 1, s455 >= 0, s455 <= z, s456 >= 0, s456 <= z', s457 >= 0, s457 <= z, s458 >= 0, s458 <= z', s185 >= 0, s185 <= 0 + 1, s40 >= 0, s40 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 1, s41, s459, s460, 1 + p(x') + s461, 1 + s186 + s462, z'', s907) :|: s907 >= 0, s907 <= z'' + 0 + 1, s459 >= 0, s459 <= z, s460 >= 0, s460 <= z', s461 >= 0, s461 <= z, s462 >= 0, s462 <= z', s186 >= 0, s186 <= 0 + 1, s41 >= 0, s41 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(2, 1, s42, s463, s464, 1 + p(0) + s465, 1 + s187 + s466, z'', s908) :|: s908 >= 0, s908 <= z'' + x'' + 1, s463 >= 0, s463 <= z, s464 >= 0, s464 <= z', s465 >= 0, s465 <= z, s466 >= 0, s466 <= z', s187 >= 0, s187 <= x' + 1, s42 >= 0, s42 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(2, 1, s43, s467, s468, 1 + p(0) + s469, 1 + s188 + s470, z'', s909) :|: s909 >= 0, s909 <= z'' + 0 + 1, s467 >= 0, s467 <= z, s468 >= 0, s468 <= z', s469 >= 0, s469 <= z, s470 >= 0, s470 <= z', s188 >= 0, s188 <= x' + 1, s43 >= 0, s43 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 1, s44, s471, s472, 1 + p(0) + s473, 1 + s189 + s474, z'', s910) :|: s910 >= 0, s910 <= z'' + x' + 1, s471 >= 0, s471 <= z, s472 >= 0, s472 <= z', s473 >= 0, s473 <= z, s474 >= 0, s474 <= z', s189 >= 0, s189 <= 0 + 1, s44 >= 0, s44 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(2, 1, s45, s475, s476, 1 + p(0) + s477, 1 + s190 + s478, z'', s911) :|: s911 >= 0, s911 <= z'' + 0 + 1, s475 >= 0, s475 <= z, s476 >= 0, s476 <= z', s477 >= 0, s477 <= z, s478 >= 0, s478 <= z', s190 >= 0, s190 <= 0 + 1, s45 >= 0, s45 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(2, 0, s14, s351, s352, 1 + p(x') + s353, 1 + s159 + s354, z'', s880) :|: s880 >= 0, s880 <= z'' + x1 + 1, s351 >= 0, s351 <= z, s352 >= 0, s352 <= z', s353 >= 0, s353 <= z, s354 >= 0, s354 <= z', s159 >= 0, s159 <= x'' + 1, s14 >= 0, s14 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(2, 0, s15, s355, s356, 1 + p(x') + s357, 1 + s160 + s358, z'', s881) :|: s881 >= 0, s881 <= z'' + 0 + 1, s355 >= 0, s355 <= z, s356 >= 0, s356 <= z', s357 >= 0, s357 <= z, s358 >= 0, s358 <= z', s160 >= 0, s160 <= x'' + 1, s15 >= 0, s15 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 0, s16, s359, s360, 1 + p(x') + s361, 1 + s161 + s362, z'', s882) :|: s882 >= 0, s882 <= z'' + x'' + 1, s359 >= 0, s359 <= z, s360 >= 0, s360 <= z', s361 >= 0, s361 <= z, s362 >= 0, s362 <= z', s161 >= 0, s161 <= 0 + 1, s16 >= 0, s16 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 0, s17, s363, s364, 1 + p(x') + s365, 1 + s162 + s366, z'', s883) :|: s883 >= 0, s883 <= z'' + 0 + 1, s363 >= 0, s363 <= z, s364 >= 0, s364 <= z', s365 >= 0, s365 <= z, s366 >= 0, s366 <= z', s162 >= 0, s162 <= 0 + 1, s17 >= 0, s17 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(2, 0, s18, s367, s368, 1 + p(0) + s369, 1 + s163 + s370, z'', s884) :|: s884 >= 0, s884 <= z'' + x'' + 1, s367 >= 0, s367 <= z, s368 >= 0, s368 <= z', s369 >= 0, s369 <= z, s370 >= 0, s370 <= z', s163 >= 0, s163 <= x' + 1, s18 >= 0, s18 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(2, 0, s19, s371, s372, 1 + p(0) + s373, 1 + s164 + s374, z'', s885) :|: s885 >= 0, s885 <= z'' + 0 + 1, s371 >= 0, s371 <= z, s372 >= 0, s372 <= z', s373 >= 0, s373 <= z, s374 >= 0, s374 <= z', s164 >= 0, s164 <= x' + 1, s19 >= 0, s19 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 0, s20, s375, s376, 1 + p(0) + s377, 1 + s165 + s378, z'', s886) :|: s886 >= 0, s886 <= z'' + x' + 1, s375 >= 0, s375 <= z, s376 >= 0, s376 <= z', s377 >= 0, s377 <= z, s378 >= 0, s378 <= z', s165 >= 0, s165 <= 0 + 1, s20 >= 0, s20 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(2, 0, s21, s379, s380, 1 + p(0) + s381, 1 + s166 + s382, z'', s887) :|: s887 >= 0, s887 <= z'' + 0 + 1, s379 >= 0, s379 <= z, s380 >= 0, s380 <= z', s381 >= 0, s381 <= z, s382 >= 0, s382 <= z', s166 >= 0, s166 <= 0 + 1, s21 >= 0, s21 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(2, 0, s22, s383, s384, 1 + p(x) + s385, 1 + s167 + s386, z'', s888) :|: s888 >= 0, s888 <= z'' + x'' + 1, s383 >= 0, s383 <= z, s384 >= 0, s384 <= z', s385 >= 0, s385 <= z, s386 >= 0, s386 <= z', s167 >= 0, s167 <= x' + 1, s22 >= 0, s22 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(2, 0, s23, s387, s388, 1 + p(x) + s389, 1 + s168 + s390, z'', s889) :|: s889 >= 0, s889 <= z'' + 0 + 1, s387 >= 0, s387 <= z, s388 >= 0, s388 <= z', s389 >= 0, s389 <= z, s390 >= 0, s390 <= z', s168 >= 0, s168 <= x' + 1, s23 >= 0, s23 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 0, s24, s391, s392, 1 + p(x) + s393, 1 + s169 + s394, z'', s890) :|: s890 >= 0, s890 <= z'' + x' + 1, s391 >= 0, s391 <= z, s392 >= 0, s392 <= z', s393 >= 0, s393 <= z, s394 >= 0, s394 <= z', s169 >= 0, s169 <= 0 + 1, s24 >= 0, s24 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(2, 0, s25, s395, s396, 1 + p(x) + s397, 1 + s170 + s398, z'', s891) :|: s891 >= 0, s891 <= z'' + 0 + 1, s395 >= 0, s395 <= z, s396 >= 0, s396 <= z', s397 >= 0, s397 <= z, s398 >= 0, s398 <= z', s170 >= 0, s170 <= 0 + 1, s25 >= 0, s25 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 11 + x + z'' }-> if(2, 0, s26, s399, s400, 1 + p(0) + s401, 1 + s171 + s402, z'', s892) :|: s892 >= 0, s892 <= z'' + x' + 1, s399 >= 0, s399 <= z, s400 >= 0, s400 <= z', s401 >= 0, s401 <= z, s402 >= 0, s402 <= z', s171 >= 0, s171 <= x + 1, s26 >= 0, s26 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + x + z'' }-> if(2, 0, s27, s403, s404, 1 + p(0) + s405, 1 + s172 + s406, z'', s893) :|: s893 >= 0, s893 <= z'' + 0 + 1, s403 >= 0, s403 <= z, s404 >= 0, s404 <= z', s405 >= 0, s405 <= z, s406 >= 0, s406 <= z', s172 >= 0, s172 <= x + 1, s27 >= 0, s27 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(2, 0, s28, s407, s408, 1 + p(0) + s409, 1 + s173 + s410, z'', s894) :|: s894 >= 0, s894 <= z'' + x + 1, s407 >= 0, s407 <= z, s408 >= 0, s408 <= z', s409 >= 0, s409 <= z, s410 >= 0, s410 <= z', s173 >= 0, s173 <= 0 + 1, s28 >= 0, s28 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(2, 0, s29, s411, s412, 1 + p(0) + s413, 1 + s174 + s414, z'', s895) :|: s895 >= 0, s895 <= z'' + 0 + 1, s411 >= 0, s411 <= z, s412 >= 0, s412 <= z', s413 >= 0, s413 <= z, s414 >= 0, s414 <= z', s174 >= 0, s174 <= 0 + 1, s29 >= 0, s29 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 2, s100, s695, s696, 1 + p(0) + s697, 1 + s245 + s698, z'', s966) :|: s966 >= 0, s966 <= z'' + x'' + 1, s695 >= 0, s695 <= z, s696 >= 0, s696 <= z', s697 >= 0, s697 <= z, s698 >= 0, s698 <= z', s245 >= 0, s245 <= 0 + 1, s100 >= 0, s100 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 2, s101, s699, s700, 1 + p(0) + s701, 1 + s246 + s702, z'', s967) :|: s967 >= 0, s967 <= z'' + 0 + 1, s699 >= 0, s699 <= z, s700 >= 0, s700 <= z', s701 >= 0, s701 <= z, s702 >= 0, s702 <= z', s246 >= 0, s246 <= 0 + 1, s101 >= 0, s101 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(1, 2, s102, s703, s704, 1 + p(x') + s705, 1 + s247 + s706, z'', s968) :|: s968 >= 0, s968 <= z'' + x1 + 1, s703 >= 0, s703 <= z, s704 >= 0, s704 <= z', s705 >= 0, s705 <= z, s706 >= 0, s706 <= z', s247 >= 0, s247 <= x'' + 1, s102 >= 0, s102 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(1, 2, s103, s707, s708, 1 + p(x') + s709, 1 + s248 + s710, z'', s969) :|: s969 >= 0, s969 <= z'' + 0 + 1, s707 >= 0, s707 <= z, s708 >= 0, s708 <= z', s709 >= 0, s709 <= z, s710 >= 0, s710 <= z', s248 >= 0, s248 <= x'' + 1, s103 >= 0, s103 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 2, s104, s711, s712, 1 + p(x') + s713, 1 + s249 + s714, z'', s970) :|: s970 >= 0, s970 <= z'' + x'' + 1, s711 >= 0, s711 <= z, s712 >= 0, s712 <= z', s713 >= 0, s713 <= z, s714 >= 0, s714 <= z', s249 >= 0, s249 <= 0 + 1, s104 >= 0, s104 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 2, s105, s715, s716, 1 + p(x') + s717, 1 + s250 + s718, z'', s971) :|: s971 >= 0, s971 <= z'' + 0 + 1, s715 >= 0, s715 <= z, s716 >= 0, s716 <= z', s717 >= 0, s717 <= z, s718 >= 0, s718 <= z', s250 >= 0, s250 <= 0 + 1, s105 >= 0, s105 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(1, 2, s106, s719, s720, 1 + p(0) + s721, 1 + s251 + s722, z'', s972) :|: s972 >= 0, s972 <= z'' + x'' + 1, s719 >= 0, s719 <= z, s720 >= 0, s720 <= z', s721 >= 0, s721 <= z, s722 >= 0, s722 <= z', s251 >= 0, s251 <= x' + 1, s106 >= 0, s106 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(1, 2, s107, s723, s724, 1 + p(0) + s725, 1 + s252 + s726, z'', s973) :|: s973 >= 0, s973 <= z'' + 0 + 1, s723 >= 0, s723 <= z, s724 >= 0, s724 <= z', s725 >= 0, s725 <= z, s726 >= 0, s726 <= z', s252 >= 0, s252 <= x' + 1, s107 >= 0, s107 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 2, s108, s727, s728, 1 + p(0) + s729, 1 + s253 + s730, z'', s974) :|: s974 >= 0, s974 <= z'' + x' + 1, s727 >= 0, s727 <= z, s728 >= 0, s728 <= z', s729 >= 0, s729 <= z, s730 >= 0, s730 <= z', s253 >= 0, s253 <= 0 + 1, s108 >= 0, s108 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(1, 2, s109, s731, s732, 1 + p(0) + s733, 1 + s254 + s734, z'', s975) :|: s975 >= 0, s975 <= z'' + 0 + 1, s731 >= 0, s731 <= z, s732 >= 0, s732 <= z', s733 >= 0, s733 <= z, s734 >= 0, s734 <= z', s254 >= 0, s254 <= 0 + 1, s109 >= 0, s109 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 addLists(z, z', z'') -{ 14 + x1 + z'' }-> if(1, 2, s94, s671, s672, 1 + p(x'') + s673, 1 + s239 + s674, z'', s960) :|: s960 >= 0, s960 <= z'' + x2 + 1, s671 >= 0, s671 <= z, s672 >= 0, s672 <= z', s673 >= 0, s673 <= z, s674 >= 0, s674 <= z', s239 >= 0, s239 <= x1 + 1, s94 >= 0, s94 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 13 + x1 + z'' }-> if(1, 2, s95, s675, s676, 1 + p(x'') + s677, 1 + s240 + s678, z'', s961) :|: s961 >= 0, s961 <= z'' + 0 + 1, s675 >= 0, s675 <= z, s676 >= 0, s676 <= z', s677 >= 0, s677 <= z, s678 >= 0, s678 <= z', s240 >= 0, s240 <= x1 + 1, s95 >= 0, s95 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 13 + z'' }-> if(1, 2, s96, s679, s680, 1 + p(x'') + s681, 1 + s241 + s682, z'', s962) :|: s962 >= 0, s962 <= z'' + x1 + 1, s679 >= 0, s679 <= z, s680 >= 0, s680 <= z', s681 >= 0, s681 <= z, s682 >= 0, s682 <= z', s241 >= 0, s241 <= 0 + 1, s96 >= 0, s96 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 2, s97, s683, s684, 1 + p(x'') + s685, 1 + s242 + s686, z'', s963) :|: s963 >= 0, s963 <= z'' + 0 + 1, s683 >= 0, s683 <= z, s684 >= 0, s684 <= z', s685 >= 0, s685 <= z, s686 >= 0, s686 <= z', s242 >= 0, s242 <= 0 + 1, s97 >= 0, s97 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(1, 2, s98, s687, s688, 1 + p(0) + s689, 1 + s243 + s690, z'', s964) :|: s964 >= 0, s964 <= z'' + x1 + 1, s687 >= 0, s687 <= z, s688 >= 0, s688 <= z', s689 >= 0, s689 <= z, s690 >= 0, s690 <= z', s243 >= 0, s243 <= x'' + 1, s98 >= 0, s98 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(1, 2, s99, s691, s692, 1 + p(0) + s693, 1 + s244 + s694, z'', s965) :|: s965 >= 0, s965 <= z'' + 0 + 1, s691 >= 0, s691 <= z, s692 >= 0, s692 <= z', s693 >= 0, s693 <= z, s694 >= 0, s694 <= z', s244 >= 0, s244 <= x'' + 1, s99 >= 0, s99 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 14 + x2 + z'' }-> if(1, 1, s126, s799, s800, 1 + p(x1) + s801, 1 + s271 + s802, z'', s992) :|: s992 >= 0, s992 <= z'' + x3 + 1, s799 >= 0, s799 <= z, s800 >= 0, s800 <= z', s801 >= 0, s801 <= z, s802 >= 0, s802 <= z', s271 >= 0, s271 <= x2 + 1, s126 >= 0, s126 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0, z' = 1 + x3 + xs4, xs4 >= 0, x3 >= 0 addLists(z, z', z'') -{ 13 + x2 + z'' }-> if(1, 1, s127, s803, s804, 1 + p(x1) + s805, 1 + s272 + s806, z'', s993) :|: s993 >= 0, s993 <= z'' + 0 + 1, s803 >= 0, s803 <= z, s804 >= 0, s804 <= z', s805 >= 0, s805 <= z, s806 >= 0, s806 <= z', s272 >= 0, s272 <= x2 + 1, s127 >= 0, s127 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 13 + z'' }-> if(1, 1, s128, s807, s808, 1 + p(x1) + s809, 1 + s273 + s810, z'', s994) :|: s994 >= 0, s994 <= z'' + x2 + 1, s807 >= 0, s807 <= z, s808 >= 0, s808 <= z', s809 >= 0, s809 <= z, s810 >= 0, s810 <= z', s273 >= 0, s273 <= 0 + 1, s128 >= 0, s128 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 1, s129, s811, s812, 1 + p(x1) + s813, 1 + s274 + s814, z'', s995) :|: s995 >= 0, s995 <= z'' + 0 + 1, s811 >= 0, s811 <= z, s812 >= 0, s812 <= z', s813 >= 0, s813 <= z, s814 >= 0, s814 <= z', s274 >= 0, s274 <= 0 + 1, s129 >= 0, s129 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 13 + x1 + z'' }-> if(1, 1, s130, s815, s816, 1 + p(0) + s817, 1 + s275 + s818, z'', s996) :|: s996 >= 0, s996 <= z'' + x2 + 1, s815 >= 0, s815 <= z, s816 >= 0, s816 <= z', s817 >= 0, s817 <= z, s818 >= 0, s818 <= z', s275 >= 0, s275 <= x1 + 1, s130 >= 0, s130 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 + x1 + z'' }-> if(1, 1, s131, s819, s820, 1 + p(0) + s821, 1 + s276 + s822, z'', s997) :|: s997 >= 0, s997 <= z'' + 0 + 1, s819 >= 0, s819 <= z, s820 >= 0, s820 <= z', s821 >= 0, s821 <= z, s822 >= 0, s822 <= z', s276 >= 0, s276 <= x1 + 1, s131 >= 0, s131 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 1, s132, s823, s824, 1 + p(0) + s825, 1 + s277 + s826, z'', s998) :|: s998 >= 0, s998 <= z'' + x1 + 1, s823 >= 0, s823 <= z, s824 >= 0, s824 <= z', s825 >= 0, s825 <= z, s826 >= 0, s826 <= z', s277 >= 0, s277 <= 0 + 1, s132 >= 0, s132 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 1, s133, s827, s828, 1 + p(0) + s829, 1 + s278 + s830, z'', s999) :|: s999 >= 0, s999 <= z'' + 0 + 1, s827 >= 0, s827 <= z, s828 >= 0, s828 <= z', s829 >= 0, s829 <= z, s830 >= 0, s830 <= z', s278 >= 0, s278 <= 0 + 1, s133 >= 0, s133 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + x1 + z'' }-> if(1, 1, s134, s831, s832, 1 + p(x'') + s833, 1 + s279 + s834, z'', s1000) :|: s1000 >= 0, s1000 <= z'' + x2 + 1, s831 >= 0, s831 <= z, s832 >= 0, s832 <= z', s833 >= 0, s833 <= z, s834 >= 0, s834 <= z', s279 >= 0, s279 <= x1 + 1, s134 >= 0, s134 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 + x1 + z'' }-> if(1, 1, s135, s835, s836, 1 + p(x'') + s837, 1 + s280 + s838, z'', s1001) :|: s1001 >= 0, s1001 <= z'' + 0 + 1, s835 >= 0, s835 <= z, s836 >= 0, s836 <= z', s837 >= 0, s837 <= z, s838 >= 0, s838 <= z', s280 >= 0, s280 <= x1 + 1, s135 >= 0, s135 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 1, s136, s839, s840, 1 + p(x'') + s841, 1 + s281 + s842, z'', s1002) :|: s1002 >= 0, s1002 <= z'' + x1 + 1, s839 >= 0, s839 <= z, s840 >= 0, s840 <= z', s841 >= 0, s841 <= z, s842 >= 0, s842 <= z', s281 >= 0, s281 <= 0 + 1, s136 >= 0, s136 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 1, s137, s843, s844, 1 + p(x'') + s845, 1 + s282 + s846, z'', s1003) :|: s1003 >= 0, s1003 <= z'' + 0 + 1, s843 >= 0, s843 <= z, s844 >= 0, s844 <= z', s845 >= 0, s845 <= z, s846 >= 0, s846 <= z', s282 >= 0, s282 <= 0 + 1, s137 >= 0, s137 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(1, 1, s138, s847, s848, 1 + p(0) + s849, 1 + s283 + s850, z'', s1004) :|: s1004 >= 0, s1004 <= z'' + x1 + 1, s847 >= 0, s847 <= z, s848 >= 0, s848 <= z', s849 >= 0, s849 <= z, s850 >= 0, s850 <= z', s283 >= 0, s283 <= x'' + 1, s138 >= 0, s138 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' + z'' }-> if(1, 1, s139, s851, s852, 1 + p(0) + s853, 1 + s284 + s854, z'', s1005) :|: s1005 >= 0, s1005 <= z'' + 0 + 1, s851 >= 0, s851 <= z, s852 >= 0, s852 <= z', s853 >= 0, s853 <= z, s854 >= 0, s854 <= z', s284 >= 0, s284 <= x'' + 1, s139 >= 0, s139 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 1, s140, s855, s856, 1 + p(0) + s857, 1 + s285 + s858, z'', s1006) :|: s1006 >= 0, s1006 <= z'' + x'' + 1, s855 >= 0, s855 <= z, s856 >= 0, s856 <= z', s857 >= 0, s857 <= z, s858 >= 0, s858 <= z', s285 >= 0, s285 <= 0 + 1, s140 >= 0, s140 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(1, 1, s141, s859, s860, 1 + p(0) + s861, 1 + s286 + s862, z'', s1007) :|: s1007 >= 0, s1007 <= z'' + 0 + 1, s859 >= 0, s859 <= z, s860 >= 0, s860 <= z', s861 >= 0, s861 <= z, s862 >= 0, s862 <= z', s286 >= 0, s286 <= 0 + 1, s141 >= 0, s141 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 13 + x1 + z'' }-> if(1, 0, s110, s735, s736, 1 + p(x'') + s737, 1 + s255 + s738, z'', s976) :|: s976 >= 0, s976 <= z'' + x2 + 1, s735 >= 0, s735 <= z, s736 >= 0, s736 <= z', s737 >= 0, s737 <= z, s738 >= 0, s738 <= z', s255 >= 0, s255 <= x1 + 1, s110 >= 0, s110 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 + x1 + z'' }-> if(1, 0, s111, s739, s740, 1 + p(x'') + s741, 1 + s256 + s742, z'', s977) :|: s977 >= 0, s977 <= z'' + 0 + 1, s739 >= 0, s739 <= z, s740 >= 0, s740 <= z', s741 >= 0, s741 <= z, s742 >= 0, s742 <= z', s256 >= 0, s256 <= x1 + 1, s111 >= 0, s111 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 0, s112, s743, s744, 1 + p(x'') + s745, 1 + s257 + s746, z'', s978) :|: s978 >= 0, s978 <= z'' + x1 + 1, s743 >= 0, s743 <= z, s744 >= 0, s744 <= z', s745 >= 0, s745 <= z, s746 >= 0, s746 <= z', s257 >= 0, s257 <= 0 + 1, s112 >= 0, s112 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 0, s113, s747, s748, 1 + p(x'') + s749, 1 + s258 + s750, z'', s979) :|: s979 >= 0, s979 <= z'' + 0 + 1, s747 >= 0, s747 <= z, s748 >= 0, s748 <= z', s749 >= 0, s749 <= z, s750 >= 0, s750 <= z', s258 >= 0, s258 <= 0 + 1, s113 >= 0, s113 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(1, 0, s114, s751, s752, 1 + p(0) + s753, 1 + s259 + s754, z'', s980) :|: s980 >= 0, s980 <= z'' + x1 + 1, s751 >= 0, s751 <= z, s752 >= 0, s752 <= z', s753 >= 0, s753 <= z, s754 >= 0, s754 <= z', s259 >= 0, s259 <= x'' + 1, s114 >= 0, s114 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' + z'' }-> if(1, 0, s115, s755, s756, 1 + p(0) + s757, 1 + s260 + s758, z'', s981) :|: s981 >= 0, s981 <= z'' + 0 + 1, s755 >= 0, s755 <= z, s756 >= 0, s756 <= z', s757 >= 0, s757 <= z, s758 >= 0, s758 <= z', s260 >= 0, s260 <= x'' + 1, s115 >= 0, s115 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 0, s116, s759, s760, 1 + p(0) + s761, 1 + s261 + s762, z'', s982) :|: s982 >= 0, s982 <= z'' + x'' + 1, s759 >= 0, s759 <= z, s760 >= 0, s760 <= z', s761 >= 0, s761 <= z, s762 >= 0, s762 <= z', s261 >= 0, s261 <= 0 + 1, s116 >= 0, s116 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(1, 0, s117, s763, s764, 1 + p(0) + s765, 1 + s262 + s766, z'', s983) :|: s983 >= 0, s983 <= z'' + 0 + 1, s763 >= 0, s763 <= z, s764 >= 0, s764 <= z', s765 >= 0, s765 <= z, s766 >= 0, s766 <= z', s262 >= 0, s262 <= 0 + 1, s117 >= 0, s117 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(1, 0, s118, s767, s768, 1 + p(x') + s769, 1 + s263 + s770, z'', s984) :|: s984 >= 0, s984 <= z'' + x1 + 1, s767 >= 0, s767 <= z, s768 >= 0, s768 <= z', s769 >= 0, s769 <= z, s770 >= 0, s770 <= z', s263 >= 0, s263 <= x'' + 1, s118 >= 0, s118 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' + z'' }-> if(1, 0, s119, s771, s772, 1 + p(x') + s773, 1 + s264 + s774, z'', s985) :|: s985 >= 0, s985 <= z'' + 0 + 1, s771 >= 0, s771 <= z, s772 >= 0, s772 <= z', s773 >= 0, s773 <= z, s774 >= 0, s774 <= z', s264 >= 0, s264 <= x'' + 1, s119 >= 0, s119 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 0, s120, s775, s776, 1 + p(x') + s777, 1 + s265 + s778, z'', s986) :|: s986 >= 0, s986 <= z'' + x'' + 1, s775 >= 0, s775 <= z, s776 >= 0, s776 <= z', s777 >= 0, s777 <= z, s778 >= 0, s778 <= z', s265 >= 0, s265 <= 0 + 1, s120 >= 0, s120 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(1, 0, s121, s779, s780, 1 + p(x') + s781, 1 + s266 + s782, z'', s987) :|: s987 >= 0, s987 <= z'' + 0 + 1, s779 >= 0, s779 <= z, s780 >= 0, s780 <= z', s781 >= 0, s781 <= z, s782 >= 0, s782 <= z', s266 >= 0, s266 <= 0 + 1, s121 >= 0, s121 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(1, 0, s122, s783, s784, 1 + p(0) + s785, 1 + s267 + s786, z'', s988) :|: s988 >= 0, s988 <= z'' + x'' + 1, s783 >= 0, s783 <= z, s784 >= 0, s784 <= z', s785 >= 0, s785 <= z, s786 >= 0, s786 <= z', s267 >= 0, s267 <= x' + 1, s122 >= 0, s122 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' + z'' }-> if(1, 0, s123, s787, s788, 1 + p(0) + s789, 1 + s268 + s790, z'', s989) :|: s989 >= 0, s989 <= z'' + 0 + 1, s787 >= 0, s787 <= z, s788 >= 0, s788 <= z', s789 >= 0, s789 <= z, s790 >= 0, s790 <= z', s268 >= 0, s268 <= x' + 1, s123 >= 0, s123 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(1, 0, s124, s791, s792, 1 + p(0) + s793, 1 + s269 + s794, z'', s990) :|: s990 >= 0, s990 <= z'' + x' + 1, s791 >= 0, s791 <= z, s792 >= 0, s792 <= z', s793 >= 0, s793 <= z, s794 >= 0, s794 <= z', s269 >= 0, s269 <= 0 + 1, s124 >= 0, s124 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(1, 0, s125, s795, s796, 1 + p(0) + s797, 1 + s270 + s798, z'', s991) :|: s991 >= 0, s991 <= z'' + 0 + 1, s795 >= 0, s795 <= z, s796 >= 0, s796 <= z', s797 >= 0, s797 <= z, s798 >= 0, s798 <= z', s270 >= 0, s270 <= 0 + 1, s125 >= 0, s125 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(0, 2, s46, s479, s480, 1 + p(x') + s481, 1 + s191 + s482, z'', s912) :|: s912 >= 0, s912 <= z'' + x1 + 1, s479 >= 0, s479 <= z, s480 >= 0, s480 <= z', s481 >= 0, s481 <= z, s482 >= 0, s482 <= z', s191 >= 0, s191 <= x'' + 1, s46 >= 0, s46 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(0, 2, s47, s483, s484, 1 + p(x') + s485, 1 + s192 + s486, z'', s913) :|: s913 >= 0, s913 <= z'' + 0 + 1, s483 >= 0, s483 <= z, s484 >= 0, s484 <= z', s485 >= 0, s485 <= z, s486 >= 0, s486 <= z', s192 >= 0, s192 <= x'' + 1, s47 >= 0, s47 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(0, 2, s48, s487, s488, 1 + p(x') + s489, 1 + s193 + s490, z'', s914) :|: s914 >= 0, s914 <= z'' + x'' + 1, s487 >= 0, s487 <= z, s488 >= 0, s488 <= z', s489 >= 0, s489 <= z, s490 >= 0, s490 <= z', s193 >= 0, s193 <= 0 + 1, s48 >= 0, s48 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 2, s49, s491, s492, 1 + p(x') + s493, 1 + s194 + s494, z'', s915) :|: s915 >= 0, s915 <= z'' + 0 + 1, s491 >= 0, s491 <= z, s492 >= 0, s492 <= z', s493 >= 0, s493 <= z, s494 >= 0, s494 <= z', s194 >= 0, s194 <= 0 + 1, s49 >= 0, s49 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(0, 2, s50, s495, s496, 1 + p(0) + s497, 1 + s195 + s498, z'', s916) :|: s916 >= 0, s916 <= z'' + x'' + 1, s495 >= 0, s495 <= z, s496 >= 0, s496 <= z', s497 >= 0, s497 <= z, s498 >= 0, s498 <= z', s195 >= 0, s195 <= x' + 1, s50 >= 0, s50 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(0, 2, s51, s499, s500, 1 + p(0) + s501, 1 + s196 + s502, z'', s917) :|: s917 >= 0, s917 <= z'' + 0 + 1, s499 >= 0, s499 <= z, s500 >= 0, s500 <= z', s501 >= 0, s501 <= z, s502 >= 0, s502 <= z', s196 >= 0, s196 <= x' + 1, s51 >= 0, s51 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 2, s52, s503, s504, 1 + p(0) + s505, 1 + s197 + s506, z'', s918) :|: s918 >= 0, s918 <= z'' + x' + 1, s503 >= 0, s503 <= z, s504 >= 0, s504 <= z', s505 >= 0, s505 <= z, s506 >= 0, s506 <= z', s197 >= 0, s197 <= 0 + 1, s52 >= 0, s52 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 2, s53, s507, s508, 1 + p(0) + s509, 1 + s198 + s510, z'', s919) :|: s919 >= 0, s919 <= z'' + 0 + 1, s507 >= 0, s507 <= z, s508 >= 0, s508 <= z', s509 >= 0, s509 <= z, s510 >= 0, s510 <= z', s198 >= 0, s198 <= 0 + 1, s53 >= 0, s53 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(0, 2, s54, s511, s512, 1 + p(x) + s513, 1 + s199 + s514, z'', s920) :|: s920 >= 0, s920 <= z'' + x'' + 1, s511 >= 0, s511 <= z, s512 >= 0, s512 <= z', s513 >= 0, s513 <= z, s514 >= 0, s514 <= z', s199 >= 0, s199 <= x' + 1, s54 >= 0, s54 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(0, 2, s55, s515, s516, 1 + p(x) + s517, 1 + s200 + s518, z'', s921) :|: s921 >= 0, s921 <= z'' + 0 + 1, s515 >= 0, s515 <= z, s516 >= 0, s516 <= z', s517 >= 0, s517 <= z, s518 >= 0, s518 <= z', s200 >= 0, s200 <= x' + 1, s55 >= 0, s55 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 2, s56, s519, s520, 1 + p(x) + s521, 1 + s201 + s522, z'', s922) :|: s922 >= 0, s922 <= z'' + x' + 1, s519 >= 0, s519 <= z, s520 >= 0, s520 <= z', s521 >= 0, s521 <= z, s522 >= 0, s522 <= z', s201 >= 0, s201 <= 0 + 1, s56 >= 0, s56 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 2, s57, s523, s524, 1 + p(x) + s525, 1 + s202 + s526, z'', s923) :|: s923 >= 0, s923 <= z'' + 0 + 1, s523 >= 0, s523 <= z, s524 >= 0, s524 <= z', s525 >= 0, s525 <= z, s526 >= 0, s526 <= z', s202 >= 0, s202 <= 0 + 1, s57 >= 0, s57 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 11 + x + z'' }-> if(0, 2, s58, s527, s528, 1 + p(0) + s529, 1 + s203 + s530, z'', s924) :|: s924 >= 0, s924 <= z'' + x' + 1, s527 >= 0, s527 <= z, s528 >= 0, s528 <= z', s529 >= 0, s529 <= z, s530 >= 0, s530 <= z', s203 >= 0, s203 <= x + 1, s58 >= 0, s58 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + x + z'' }-> if(0, 2, s59, s531, s532, 1 + p(0) + s533, 1 + s204 + s534, z'', s925) :|: s925 >= 0, s925 <= z'' + 0 + 1, s531 >= 0, s531 <= z, s532 >= 0, s532 <= z', s533 >= 0, s533 <= z, s534 >= 0, s534 <= z', s204 >= 0, s204 <= x + 1, s59 >= 0, s59 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 2, s60, s535, s536, 1 + p(0) + s537, 1 + s205 + s538, z'', s926) :|: s926 >= 0, s926 <= z'' + x + 1, s535 >= 0, s535 <= z, s536 >= 0, s536 <= z', s537 >= 0, s537 <= z, s538 >= 0, s538 <= z', s205 >= 0, s205 <= 0 + 1, s60 >= 0, s60 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(0, 2, s61, s539, s540, 1 + p(0) + s541, 1 + s206 + s542, z'', s927) :|: s927 >= 0, s927 <= z'' + 0 + 1, s539 >= 0, s539 <= z, s540 >= 0, s540 <= z', s541 >= 0, s541 <= z, s542 >= 0, s542 <= z', s206 >= 0, s206 <= 0 + 1, s61 >= 0, s61 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 addLists(z, z', z'') -{ 13 + x1 + z'' }-> if(0, 1, s78, s607, s608, 1 + p(x'') + s609, 1 + s223 + s610, z'', s944) :|: s944 >= 0, s944 <= z'' + x2 + 1, s607 >= 0, s607 <= z, s608 >= 0, s608 <= z', s609 >= 0, s609 <= z, s610 >= 0, s610 <= z', s223 >= 0, s223 <= x1 + 1, s78 >= 0, s78 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 + x1 + z'' }-> if(0, 1, s79, s611, s612, 1 + p(x'') + s613, 1 + s224 + s614, z'', s945) :|: s945 >= 0, s945 <= z'' + 0 + 1, s611 >= 0, s611 <= z, s612 >= 0, s612 <= z', s613 >= 0, s613 <= z, s614 >= 0, s614 <= z', s224 >= 0, s224 <= x1 + 1, s79 >= 0, s79 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(0, 1, s80, s615, s616, 1 + p(x'') + s617, 1 + s225 + s618, z'', s946) :|: s946 >= 0, s946 <= z'' + x1 + 1, s615 >= 0, s615 <= z, s616 >= 0, s616 <= z', s617 >= 0, s617 <= z, s618 >= 0, s618 <= z', s225 >= 0, s225 <= 0 + 1, s80 >= 0, s80 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 1, s81, s619, s620, 1 + p(x'') + s621, 1 + s226 + s622, z'', s947) :|: s947 >= 0, s947 <= z'' + 0 + 1, s619 >= 0, s619 <= z, s620 >= 0, s620 <= z', s621 >= 0, s621 <= z, s622 >= 0, s622 <= z', s226 >= 0, s226 <= 0 + 1, s81 >= 0, s81 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(0, 1, s82, s623, s624, 1 + p(0) + s625, 1 + s227 + s626, z'', s948) :|: s948 >= 0, s948 <= z'' + x1 + 1, s623 >= 0, s623 <= z, s624 >= 0, s624 <= z', s625 >= 0, s625 <= z, s626 >= 0, s626 <= z', s227 >= 0, s227 <= x'' + 1, s82 >= 0, s82 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' + z'' }-> if(0, 1, s83, s627, s628, 1 + p(0) + s629, 1 + s228 + s630, z'', s949) :|: s949 >= 0, s949 <= z'' + 0 + 1, s627 >= 0, s627 <= z, s628 >= 0, s628 <= z', s629 >= 0, s629 <= z, s630 >= 0, s630 <= z', s228 >= 0, s228 <= x'' + 1, s83 >= 0, s83 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 1, s84, s631, s632, 1 + p(0) + s633, 1 + s229 + s634, z'', s950) :|: s950 >= 0, s950 <= z'' + x'' + 1, s631 >= 0, s631 <= z, s632 >= 0, s632 <= z', s633 >= 0, s633 <= z, s634 >= 0, s634 <= z', s229 >= 0, s229 <= 0 + 1, s84 >= 0, s84 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 1, s85, s635, s636, 1 + p(0) + s637, 1 + s230 + s638, z'', s951) :|: s951 >= 0, s951 <= z'' + 0 + 1, s635 >= 0, s635 <= z, s636 >= 0, s636 <= z', s637 >= 0, s637 <= z, s638 >= 0, s638 <= z', s230 >= 0, s230 <= 0 + 1, s85 >= 0, s85 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(0, 1, s86, s639, s640, 1 + p(x') + s641, 1 + s231 + s642, z'', s952) :|: s952 >= 0, s952 <= z'' + x1 + 1, s639 >= 0, s639 <= z, s640 >= 0, s640 <= z', s641 >= 0, s641 <= z, s642 >= 0, s642 <= z', s231 >= 0, s231 <= x'' + 1, s86 >= 0, s86 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' + z'' }-> if(0, 1, s87, s643, s644, 1 + p(x') + s645, 1 + s232 + s646, z'', s953) :|: s953 >= 0, s953 <= z'' + 0 + 1, s643 >= 0, s643 <= z, s644 >= 0, s644 <= z', s645 >= 0, s645 <= z, s646 >= 0, s646 <= z', s232 >= 0, s232 <= x'' + 1, s87 >= 0, s87 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 1, s88, s647, s648, 1 + p(x') + s649, 1 + s233 + s650, z'', s954) :|: s954 >= 0, s954 <= z'' + x'' + 1, s647 >= 0, s647 <= z, s648 >= 0, s648 <= z', s649 >= 0, s649 <= z, s650 >= 0, s650 <= z', s233 >= 0, s233 <= 0 + 1, s88 >= 0, s88 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 1, s89, s651, s652, 1 + p(x') + s653, 1 + s234 + s654, z'', s955) :|: s955 >= 0, s955 <= z'' + 0 + 1, s651 >= 0, s651 <= z, s652 >= 0, s652 <= z', s653 >= 0, s653 <= z, s654 >= 0, s654 <= z', s234 >= 0, s234 <= 0 + 1, s89 >= 0, s89 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(0, 1, s90, s655, s656, 1 + p(0) + s657, 1 + s235 + s658, z'', s956) :|: s956 >= 0, s956 <= z'' + x'' + 1, s655 >= 0, s655 <= z, s656 >= 0, s656 <= z', s657 >= 0, s657 <= z, s658 >= 0, s658 <= z', s235 >= 0, s235 <= x' + 1, s90 >= 0, s90 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' + z'' }-> if(0, 1, s91, s659, s660, 1 + p(0) + s661, 1 + s236 + s662, z'', s957) :|: s957 >= 0, s957 <= z'' + 0 + 1, s659 >= 0, s659 <= z, s660 >= 0, s660 <= z', s661 >= 0, s661 <= z, s662 >= 0, s662 <= z', s236 >= 0, s236 <= x' + 1, s91 >= 0, s91 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 1, s92, s663, s664, 1 + p(0) + s665, 1 + s237 + s666, z'', s958) :|: s958 >= 0, s958 <= z'' + x' + 1, s663 >= 0, s663 <= z, s664 >= 0, s664 <= z', s665 >= 0, s665 <= z, s666 >= 0, s666 <= z', s237 >= 0, s237 <= 0 + 1, s92 >= 0, s92 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(0, 1, s93, s667, s668, 1 + p(0) + s669, 1 + s238 + s670, z'', s959) :|: s959 >= 0, s959 <= z'' + 0 + 1, s667 >= 0, s667 <= z, s668 >= 0, s668 <= z', s669 >= 0, s669 <= z, s670 >= 0, s670 <= z', s238 >= 0, s238 <= 0 + 1, s93 >= 0, s93 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(0, 0, s62, s543, s544, 1 + p(x') + s545, 1 + s207 + s546, z'', s928) :|: s928 >= 0, s928 <= z'' + x1 + 1, s543 >= 0, s543 <= z, s544 >= 0, s544 <= z', s545 >= 0, s545 <= z, s546 >= 0, s546 <= z', s207 >= 0, s207 <= x'' + 1, s62 >= 0, s62 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' + z'' }-> if(0, 0, s63, s547, s548, 1 + p(x') + s549, 1 + s208 + s550, z'', s929) :|: s929 >= 0, s929 <= z'' + 0 + 1, s547 >= 0, s547 <= z, s548 >= 0, s548 <= z', s549 >= 0, s549 <= z, s550 >= 0, s550 <= z', s208 >= 0, s208 <= x'' + 1, s63 >= 0, s63 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 0, s64, s551, s552, 1 + p(x') + s553, 1 + s209 + s554, z'', s930) :|: s930 >= 0, s930 <= z'' + x'' + 1, s551 >= 0, s551 <= z, s552 >= 0, s552 <= z', s553 >= 0, s553 <= z, s554 >= 0, s554 <= z', s209 >= 0, s209 <= 0 + 1, s64 >= 0, s64 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 0, s65, s555, s556, 1 + p(x') + s557, 1 + s210 + s558, z'', s931) :|: s931 >= 0, s931 <= z'' + 0 + 1, s555 >= 0, s555 <= z, s556 >= 0, s556 <= z', s557 >= 0, s557 <= z, s558 >= 0, s558 <= z', s210 >= 0, s210 <= 0 + 1, s65 >= 0, s65 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(0, 0, s66, s559, s560, 1 + p(0) + s561, 1 + s211 + s562, z'', s932) :|: s932 >= 0, s932 <= z'' + x'' + 1, s559 >= 0, s559 <= z, s560 >= 0, s560 <= z', s561 >= 0, s561 <= z, s562 >= 0, s562 <= z', s211 >= 0, s211 <= x' + 1, s66 >= 0, s66 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' + z'' }-> if(0, 0, s67, s563, s564, 1 + p(0) + s565, 1 + s212 + s566, z'', s933) :|: s933 >= 0, s933 <= z'' + 0 + 1, s563 >= 0, s563 <= z, s564 >= 0, s564 <= z', s565 >= 0, s565 <= z, s566 >= 0, s566 <= z', s212 >= 0, s212 <= x' + 1, s67 >= 0, s67 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 0, s68, s567, s568, 1 + p(0) + s569, 1 + s213 + s570, z'', s934) :|: s934 >= 0, s934 <= z'' + x' + 1, s567 >= 0, s567 <= z, s568 >= 0, s568 <= z', s569 >= 0, s569 <= z, s570 >= 0, s570 <= z', s213 >= 0, s213 <= 0 + 1, s68 >= 0, s68 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(0, 0, s69, s571, s572, 1 + p(0) + s573, 1 + s214 + s574, z'', s935) :|: s935 >= 0, s935 <= z'' + 0 + 1, s571 >= 0, s571 <= z, s572 >= 0, s572 <= z', s573 >= 0, s573 <= z, s574 >= 0, s574 <= z', s214 >= 0, s214 <= 0 + 1, s69 >= 0, s69 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(0, 0, s70, s575, s576, 1 + p(x) + s577, 1 + s215 + s578, z'', s936) :|: s936 >= 0, s936 <= z'' + x'' + 1, s575 >= 0, s575 <= z, s576 >= 0, s576 <= z', s577 >= 0, s577 <= z, s578 >= 0, s578 <= z', s215 >= 0, s215 <= x' + 1, s70 >= 0, s70 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' + z'' }-> if(0, 0, s71, s579, s580, 1 + p(x) + s581, 1 + s216 + s582, z'', s937) :|: s937 >= 0, s937 <= z'' + 0 + 1, s579 >= 0, s579 <= z, s580 >= 0, s580 <= z', s581 >= 0, s581 <= z, s582 >= 0, s582 <= z', s216 >= 0, s216 <= x' + 1, s71 >= 0, s71 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 0, s72, s583, s584, 1 + p(x) + s585, 1 + s217 + s586, z'', s938) :|: s938 >= 0, s938 <= z'' + x' + 1, s583 >= 0, s583 <= z, s584 >= 0, s584 <= z', s585 >= 0, s585 <= z, s586 >= 0, s586 <= z', s217 >= 0, s217 <= 0 + 1, s72 >= 0, s72 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(0, 0, s73, s587, s588, 1 + p(x) + s589, 1 + s218 + s590, z'', s939) :|: s939 >= 0, s939 <= z'' + 0 + 1, s587 >= 0, s587 <= z, s588 >= 0, s588 <= z', s589 >= 0, s589 <= z, s590 >= 0, s590 <= z', s218 >= 0, s218 <= 0 + 1, s73 >= 0, s73 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 10 + x + z'' }-> if(0, 0, s74, s591, s592, 1 + p(0) + s593, 1 + s219 + s594, z'', s940) :|: s940 >= 0, s940 <= z'' + x' + 1, s591 >= 0, s591 <= z, s592 >= 0, s592 <= z', s593 >= 0, s593 <= z, s594 >= 0, s594 <= z', s219 >= 0, s219 <= x + 1, s74 >= 0, s74 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 + x + z'' }-> if(0, 0, s75, s595, s596, 1 + p(0) + s597, 1 + s220 + s598, z'', s941) :|: s941 >= 0, s941 <= z'' + 0 + 1, s595 >= 0, s595 <= z, s596 >= 0, s596 <= z', s597 >= 0, s597 <= z, s598 >= 0, s598 <= z', s220 >= 0, s220 <= x + 1, s75 >= 0, s75 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(0, 0, s76, s599, s600, 1 + p(0) + s601, 1 + s221 + s602, z'', s942) :|: s942 >= 0, s942 <= z'' + x + 1, s599 >= 0, s599 <= z, s600 >= 0, s600 <= z', s601 >= 0, s601 <= z, s602 >= 0, s602 <= z', s221 >= 0, s221 <= 0 + 1, s76 >= 0, s76 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 8 + z'' }-> if(0, 0, s77, s603, s604, 1 + p(0) + s605, 1 + s222 + s606, z'', s943) :|: s943 >= 0, s943 <= z'' + 0 + 1, s603 >= 0, s603 <= z, s604 >= 0, s604 <= z', s605 >= 0, s605 <= z, s606 >= 0, s606 <= z', s222 >= 0, s222 <= 0 + 1, s77 >= 0, s77 <= 2, z >= 0, z' >= 0, z'' >= 0 append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 append(z, z') -{ 2 + ys }-> 1 + y + s863 :|: s863 >= 0, s863 <= ys + z' + 1, ys >= 0, y >= 0, z' >= 0, z = 1 + y + ys append(z, z') -{ 1 }-> 1 + z' + 1 :|: z = 1, z' >= 0 head(z) -{ 1 }-> x :|: z = 1 + x + xs, xs >= 0, x >= 0 head(z) -{ 0 }-> 0 :|: z >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> z5 :|: z1 >= 0, z' = 2, z5 >= 0, z6 >= 0, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z1, z2, z6) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 2, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z3, z4, z5) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 1, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z5 >= 0, z6 >= 0, z' = 1, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z' = 2, z = 1, z5 >= 0, z6 >= 0, z4 >= 0, z'' >= 0, z3 >= 0, z2 >= 0 inc(z) -{ 1 + z }-> 1 + s142 :|: s142 >= 0, s142 <= z - 1 + 1, z - 1 >= 0 inc(z) -{ 1 }-> 1 + 0 :|: z = 0 isEmpty(z) -{ 1 }-> 2 :|: z = 1 isEmpty(z) -{ 1 }-> 1 :|: z = 1 + x + xs, xs >= 0, x >= 0 isEmpty(z) -{ 0 }-> 0 :|: z >= 0 isZero(z) -{ 1 }-> 2 :|: z = 0 isZero(z) -{ 1 }-> 1 :|: z - 1 >= 0 p(z) -{ 1 }-> 0 :|: z = 1 + 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 1 }-> 1 + p(1 + (z - 2)) :|: z - 2 >= 0 tail(z) -{ 1 }-> xs :|: z = 1 + x + xs, xs >= 0, x >= 0 tail(z) -{ 1 }-> 1 :|: z = 1 tail(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {head}, {p}, {addLists,if}, {addList} Previous analysis results are: isEmpty: runtime: O(1) [1], size: O(1) [2] isZero: runtime: O(1) [1], size: O(1) [2] inc: runtime: O(n^1) [1 + z], size: O(n^1) [1 + z] tail: runtime: O(1) [1], size: O(n^1) [z] append: runtime: O(n^1) [1 + z], size: O(n^1) [1 + z + z'] head: runtime: ?, size: O(n^1) [z] ---------------------------------------- (55) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: head after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 1 ---------------------------------------- (56) Obligation: Complexity RNTS consisting of the following rules: addList(z, z') -{ 1 }-> addLists(z, z', 1) :|: z >= 0, z' >= 0 addLists(z, z', z'') -{ 14 + x'' + z'' }-> if(2, 2, s, s287, s288, 1 + p(x') + s289, 1 + s143 + s290, z'', s864) :|: s864 >= 0, s864 <= z'' + x1 + 1, s287 >= 0, s287 <= z, s288 >= 0, s288 <= z', s289 >= 0, s289 <= z, s290 >= 0, s290 <= z', s143 >= 0, s143 <= x'' + 1, s >= 0, s <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(2, 2, s', s291, s292, 1 + p(x') + s293, 1 + s144 + s294, z'', s865) :|: s865 >= 0, s865 <= z'' + 0 + 1, s291 >= 0, s291 <= z, s292 >= 0, s292 <= z', s293 >= 0, s293 <= z, s294 >= 0, s294 <= z', s144 >= 0, s144 <= x'' + 1, s' >= 0, s' <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + z'' }-> if(2, 2, s'', s295, s296, 1 + p(x') + s297, 1 + s145 + s298, z'', s866) :|: s866 >= 0, s866 <= z'' + x'' + 1, s295 >= 0, s295 <= z, s296 >= 0, s296 <= z', s297 >= 0, s297 <= z, s298 >= 0, s298 <= z', s145 >= 0, s145 <= 0 + 1, s'' >= 0, s'' <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 2, s1, s299, s300, 1 + p(x') + s301, 1 + s146 + s302, z'', s867) :|: s867 >= 0, s867 <= z'' + 0 + 1, s299 >= 0, s299 <= z, s300 >= 0, s300 <= z', s301 >= 0, s301 <= z, s302 >= 0, s302 <= z', s146 >= 0, s146 <= 0 + 1, s1 >= 0, s1 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x + z'' }-> if(2, 2, s10, s335, s336, 1 + p(0) + s337, 1 + s155 + s338, z'', s876) :|: s876 >= 0, s876 <= z'' + x' + 1, s335 >= 0, s335 <= z, s336 >= 0, s336 <= z', s337 >= 0, s337 <= z, s338 >= 0, s338 <= z', s155 >= 0, s155 <= x + 1, s10 >= 0, s10 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x + z'' }-> if(2, 2, s11, s339, s340, 1 + p(0) + s341, 1 + s156 + s342, z'', s877) :|: s877 >= 0, s877 <= z'' + 0 + 1, s339 >= 0, s339 <= z, s340 >= 0, s340 <= z', s341 >= 0, s341 <= z, s342 >= 0, s342 <= z', s156 >= 0, s156 <= x + 1, s11 >= 0, s11 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 2, s12, s343, s344, 1 + p(0) + s345, 1 + s157 + s346, z'', s878) :|: s878 >= 0, s878 <= z'' + x + 1, s343 >= 0, s343 <= z, s344 >= 0, s344 <= z', s345 >= 0, s345 <= z, s346 >= 0, s346 <= z', s157 >= 0, s157 <= 0 + 1, s12 >= 0, s12 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(2, 2, s13, s347, s348, 1 + p(0) + s349, 1 + s158 + s350, z'', s879) :|: s879 >= 0, s879 <= z'' + 0 + 1, s347 >= 0, s347 <= z, s348 >= 0, s348 <= z', s349 >= 0, s349 <= z, s350 >= 0, s350 <= z', s158 >= 0, s158 <= 0 + 1, s13 >= 0, s13 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 addLists(z, z', z'') -{ 13 + x' + z'' }-> if(2, 2, s2, s303, s304, 1 + p(0) + s305, 1 + s147 + s306, z'', s868) :|: s868 >= 0, s868 <= z'' + x'' + 1, s303 >= 0, s303 <= z, s304 >= 0, s304 <= z', s305 >= 0, s305 <= z, s306 >= 0, s306 <= z', s147 >= 0, s147 <= x' + 1, s2 >= 0, s2 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(2, 2, s3, s307, s308, 1 + p(0) + s309, 1 + s148 + s310, z'', s869) :|: s869 >= 0, s869 <= z'' + 0 + 1, s307 >= 0, s307 <= z, s308 >= 0, s308 <= z', s309 >= 0, s309 <= z, s310 >= 0, s310 <= z', s148 >= 0, s148 <= x' + 1, s3 >= 0, s3 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 2, s4, s311, s312, 1 + p(0) + s313, 1 + s149 + s314, z'', s870) :|: s870 >= 0, s870 <= z'' + x' + 1, s311 >= 0, s311 <= z, s312 >= 0, s312 <= z', s313 >= 0, s313 <= z, s314 >= 0, s314 <= z', s149 >= 0, s149 <= 0 + 1, s4 >= 0, s4 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 2, s5, s315, s316, 1 + p(0) + s317, 1 + s150 + s318, z'', s871) :|: s871 >= 0, s871 <= z'' + 0 + 1, s315 >= 0, s315 <= z, s316 >= 0, s316 <= z', s317 >= 0, s317 <= z, s318 >= 0, s318 <= z', s150 >= 0, s150 <= 0 + 1, s5 >= 0, s5 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 13 + x' + z'' }-> if(2, 2, s6, s319, s320, 1 + p(x) + s321, 1 + s151 + s322, z'', s872) :|: s872 >= 0, s872 <= z'' + x'' + 1, s319 >= 0, s319 <= z, s320 >= 0, s320 <= z', s321 >= 0, s321 <= z, s322 >= 0, s322 <= z', s151 >= 0, s151 <= x' + 1, s6 >= 0, s6 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(2, 2, s7, s323, s324, 1 + p(x) + s325, 1 + s152 + s326, z'', s873) :|: s873 >= 0, s873 <= z'' + 0 + 1, s323 >= 0, s323 <= z, s324 >= 0, s324 <= z', s325 >= 0, s325 <= z, s326 >= 0, s326 <= z', s152 >= 0, s152 <= x' + 1, s7 >= 0, s7 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 2, s8, s327, s328, 1 + p(x) + s329, 1 + s153 + s330, z'', s874) :|: s874 >= 0, s874 <= z'' + x' + 1, s327 >= 0, s327 <= z, s328 >= 0, s328 <= z', s329 >= 0, s329 <= z, s330 >= 0, s330 <= z', s153 >= 0, s153 <= 0 + 1, s8 >= 0, s8 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 2, s9, s331, s332, 1 + p(x) + s333, 1 + s154 + s334, z'', s875) :|: s875 >= 0, s875 <= z'' + 0 + 1, s331 >= 0, s331 <= z, s332 >= 0, s332 <= z', s333 >= 0, s333 <= z, s334 >= 0, s334 <= z', s154 >= 0, s154 <= 0 + 1, s9 >= 0, s9 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 14 + x1 + z'' }-> if(2, 1, s30, s415, s416, 1 + p(x'') + s417, 1 + s175 + s418, z'', s896) :|: s896 >= 0, s896 <= z'' + x2 + 1, s415 >= 0, s415 <= z, s416 >= 0, s416 <= z', s417 >= 0, s417 <= z, s418 >= 0, s418 <= z', s175 >= 0, s175 <= x1 + 1, s30 >= 0, s30 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 13 + x1 + z'' }-> if(2, 1, s31, s419, s420, 1 + p(x'') + s421, 1 + s176 + s422, z'', s897) :|: s897 >= 0, s897 <= z'' + 0 + 1, s419 >= 0, s419 <= z, s420 >= 0, s420 <= z', s421 >= 0, s421 <= z, s422 >= 0, s422 <= z', s176 >= 0, s176 <= x1 + 1, s31 >= 0, s31 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 13 + z'' }-> if(2, 1, s32, s423, s424, 1 + p(x'') + s425, 1 + s177 + s426, z'', s898) :|: s898 >= 0, s898 <= z'' + x1 + 1, s423 >= 0, s423 <= z, s424 >= 0, s424 <= z', s425 >= 0, s425 <= z, s426 >= 0, s426 <= z', s177 >= 0, s177 <= 0 + 1, s32 >= 0, s32 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 1, s33, s427, s428, 1 + p(x'') + s429, 1 + s178 + s430, z'', s899) :|: s899 >= 0, s899 <= z'' + 0 + 1, s427 >= 0, s427 <= z, s428 >= 0, s428 <= z', s429 >= 0, s429 <= z, s430 >= 0, s430 <= z', s178 >= 0, s178 <= 0 + 1, s33 >= 0, s33 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(2, 1, s34, s431, s432, 1 + p(0) + s433, 1 + s179 + s434, z'', s900) :|: s900 >= 0, s900 <= z'' + x1 + 1, s431 >= 0, s431 <= z, s432 >= 0, s432 <= z', s433 >= 0, s433 <= z, s434 >= 0, s434 <= z', s179 >= 0, s179 <= x'' + 1, s34 >= 0, s34 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(2, 1, s35, s435, s436, 1 + p(0) + s437, 1 + s180 + s438, z'', s901) :|: s901 >= 0, s901 <= z'' + 0 + 1, s435 >= 0, s435 <= z, s436 >= 0, s436 <= z', s437 >= 0, s437 <= z, s438 >= 0, s438 <= z', s180 >= 0, s180 <= x'' + 1, s35 >= 0, s35 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 1, s36, s439, s440, 1 + p(0) + s441, 1 + s181 + s442, z'', s902) :|: s902 >= 0, s902 <= z'' + x'' + 1, s439 >= 0, s439 <= z, s440 >= 0, s440 <= z', s441 >= 0, s441 <= z, s442 >= 0, s442 <= z', s181 >= 0, s181 <= 0 + 1, s36 >= 0, s36 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 1, s37, s443, s444, 1 + p(0) + s445, 1 + s182 + s446, z'', s903) :|: s903 >= 0, s903 <= z'' + 0 + 1, s443 >= 0, s443 <= z, s444 >= 0, s444 <= z', s445 >= 0, s445 <= z, s446 >= 0, s446 <= z', s182 >= 0, s182 <= 0 + 1, s37 >= 0, s37 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(2, 1, s38, s447, s448, 1 + p(x') + s449, 1 + s183 + s450, z'', s904) :|: s904 >= 0, s904 <= z'' + x1 + 1, s447 >= 0, s447 <= z, s448 >= 0, s448 <= z', s449 >= 0, s449 <= z, s450 >= 0, s450 <= z', s183 >= 0, s183 <= x'' + 1, s38 >= 0, s38 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(2, 1, s39, s451, s452, 1 + p(x') + s453, 1 + s184 + s454, z'', s905) :|: s905 >= 0, s905 <= z'' + 0 + 1, s451 >= 0, s451 <= z, s452 >= 0, s452 <= z', s453 >= 0, s453 <= z, s454 >= 0, s454 <= z', s184 >= 0, s184 <= x'' + 1, s39 >= 0, s39 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 1, s40, s455, s456, 1 + p(x') + s457, 1 + s185 + s458, z'', s906) :|: s906 >= 0, s906 <= z'' + x'' + 1, s455 >= 0, s455 <= z, s456 >= 0, s456 <= z', s457 >= 0, s457 <= z, s458 >= 0, s458 <= z', s185 >= 0, s185 <= 0 + 1, s40 >= 0, s40 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 1, s41, s459, s460, 1 + p(x') + s461, 1 + s186 + s462, z'', s907) :|: s907 >= 0, s907 <= z'' + 0 + 1, s459 >= 0, s459 <= z, s460 >= 0, s460 <= z', s461 >= 0, s461 <= z, s462 >= 0, s462 <= z', s186 >= 0, s186 <= 0 + 1, s41 >= 0, s41 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(2, 1, s42, s463, s464, 1 + p(0) + s465, 1 + s187 + s466, z'', s908) :|: s908 >= 0, s908 <= z'' + x'' + 1, s463 >= 0, s463 <= z, s464 >= 0, s464 <= z', s465 >= 0, s465 <= z, s466 >= 0, s466 <= z', s187 >= 0, s187 <= x' + 1, s42 >= 0, s42 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(2, 1, s43, s467, s468, 1 + p(0) + s469, 1 + s188 + s470, z'', s909) :|: s909 >= 0, s909 <= z'' + 0 + 1, s467 >= 0, s467 <= z, s468 >= 0, s468 <= z', s469 >= 0, s469 <= z, s470 >= 0, s470 <= z', s188 >= 0, s188 <= x' + 1, s43 >= 0, s43 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 1, s44, s471, s472, 1 + p(0) + s473, 1 + s189 + s474, z'', s910) :|: s910 >= 0, s910 <= z'' + x' + 1, s471 >= 0, s471 <= z, s472 >= 0, s472 <= z', s473 >= 0, s473 <= z, s474 >= 0, s474 <= z', s189 >= 0, s189 <= 0 + 1, s44 >= 0, s44 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(2, 1, s45, s475, s476, 1 + p(0) + s477, 1 + s190 + s478, z'', s911) :|: s911 >= 0, s911 <= z'' + 0 + 1, s475 >= 0, s475 <= z, s476 >= 0, s476 <= z', s477 >= 0, s477 <= z, s478 >= 0, s478 <= z', s190 >= 0, s190 <= 0 + 1, s45 >= 0, s45 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(2, 0, s14, s351, s352, 1 + p(x') + s353, 1 + s159 + s354, z'', s880) :|: s880 >= 0, s880 <= z'' + x1 + 1, s351 >= 0, s351 <= z, s352 >= 0, s352 <= z', s353 >= 0, s353 <= z, s354 >= 0, s354 <= z', s159 >= 0, s159 <= x'' + 1, s14 >= 0, s14 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(2, 0, s15, s355, s356, 1 + p(x') + s357, 1 + s160 + s358, z'', s881) :|: s881 >= 0, s881 <= z'' + 0 + 1, s355 >= 0, s355 <= z, s356 >= 0, s356 <= z', s357 >= 0, s357 <= z, s358 >= 0, s358 <= z', s160 >= 0, s160 <= x'' + 1, s15 >= 0, s15 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 0, s16, s359, s360, 1 + p(x') + s361, 1 + s161 + s362, z'', s882) :|: s882 >= 0, s882 <= z'' + x'' + 1, s359 >= 0, s359 <= z, s360 >= 0, s360 <= z', s361 >= 0, s361 <= z, s362 >= 0, s362 <= z', s161 >= 0, s161 <= 0 + 1, s16 >= 0, s16 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 0, s17, s363, s364, 1 + p(x') + s365, 1 + s162 + s366, z'', s883) :|: s883 >= 0, s883 <= z'' + 0 + 1, s363 >= 0, s363 <= z, s364 >= 0, s364 <= z', s365 >= 0, s365 <= z, s366 >= 0, s366 <= z', s162 >= 0, s162 <= 0 + 1, s17 >= 0, s17 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(2, 0, s18, s367, s368, 1 + p(0) + s369, 1 + s163 + s370, z'', s884) :|: s884 >= 0, s884 <= z'' + x'' + 1, s367 >= 0, s367 <= z, s368 >= 0, s368 <= z', s369 >= 0, s369 <= z, s370 >= 0, s370 <= z', s163 >= 0, s163 <= x' + 1, s18 >= 0, s18 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(2, 0, s19, s371, s372, 1 + p(0) + s373, 1 + s164 + s374, z'', s885) :|: s885 >= 0, s885 <= z'' + 0 + 1, s371 >= 0, s371 <= z, s372 >= 0, s372 <= z', s373 >= 0, s373 <= z, s374 >= 0, s374 <= z', s164 >= 0, s164 <= x' + 1, s19 >= 0, s19 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 0, s20, s375, s376, 1 + p(0) + s377, 1 + s165 + s378, z'', s886) :|: s886 >= 0, s886 <= z'' + x' + 1, s375 >= 0, s375 <= z, s376 >= 0, s376 <= z', s377 >= 0, s377 <= z, s378 >= 0, s378 <= z', s165 >= 0, s165 <= 0 + 1, s20 >= 0, s20 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(2, 0, s21, s379, s380, 1 + p(0) + s381, 1 + s166 + s382, z'', s887) :|: s887 >= 0, s887 <= z'' + 0 + 1, s379 >= 0, s379 <= z, s380 >= 0, s380 <= z', s381 >= 0, s381 <= z, s382 >= 0, s382 <= z', s166 >= 0, s166 <= 0 + 1, s21 >= 0, s21 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(2, 0, s22, s383, s384, 1 + p(x) + s385, 1 + s167 + s386, z'', s888) :|: s888 >= 0, s888 <= z'' + x'' + 1, s383 >= 0, s383 <= z, s384 >= 0, s384 <= z', s385 >= 0, s385 <= z, s386 >= 0, s386 <= z', s167 >= 0, s167 <= x' + 1, s22 >= 0, s22 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(2, 0, s23, s387, s388, 1 + p(x) + s389, 1 + s168 + s390, z'', s889) :|: s889 >= 0, s889 <= z'' + 0 + 1, s387 >= 0, s387 <= z, s388 >= 0, s388 <= z', s389 >= 0, s389 <= z, s390 >= 0, s390 <= z', s168 >= 0, s168 <= x' + 1, s23 >= 0, s23 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 0, s24, s391, s392, 1 + p(x) + s393, 1 + s169 + s394, z'', s890) :|: s890 >= 0, s890 <= z'' + x' + 1, s391 >= 0, s391 <= z, s392 >= 0, s392 <= z', s393 >= 0, s393 <= z, s394 >= 0, s394 <= z', s169 >= 0, s169 <= 0 + 1, s24 >= 0, s24 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(2, 0, s25, s395, s396, 1 + p(x) + s397, 1 + s170 + s398, z'', s891) :|: s891 >= 0, s891 <= z'' + 0 + 1, s395 >= 0, s395 <= z, s396 >= 0, s396 <= z', s397 >= 0, s397 <= z, s398 >= 0, s398 <= z', s170 >= 0, s170 <= 0 + 1, s25 >= 0, s25 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 11 + x + z'' }-> if(2, 0, s26, s399, s400, 1 + p(0) + s401, 1 + s171 + s402, z'', s892) :|: s892 >= 0, s892 <= z'' + x' + 1, s399 >= 0, s399 <= z, s400 >= 0, s400 <= z', s401 >= 0, s401 <= z, s402 >= 0, s402 <= z', s171 >= 0, s171 <= x + 1, s26 >= 0, s26 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + x + z'' }-> if(2, 0, s27, s403, s404, 1 + p(0) + s405, 1 + s172 + s406, z'', s893) :|: s893 >= 0, s893 <= z'' + 0 + 1, s403 >= 0, s403 <= z, s404 >= 0, s404 <= z', s405 >= 0, s405 <= z, s406 >= 0, s406 <= z', s172 >= 0, s172 <= x + 1, s27 >= 0, s27 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(2, 0, s28, s407, s408, 1 + p(0) + s409, 1 + s173 + s410, z'', s894) :|: s894 >= 0, s894 <= z'' + x + 1, s407 >= 0, s407 <= z, s408 >= 0, s408 <= z', s409 >= 0, s409 <= z, s410 >= 0, s410 <= z', s173 >= 0, s173 <= 0 + 1, s28 >= 0, s28 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(2, 0, s29, s411, s412, 1 + p(0) + s413, 1 + s174 + s414, z'', s895) :|: s895 >= 0, s895 <= z'' + 0 + 1, s411 >= 0, s411 <= z, s412 >= 0, s412 <= z', s413 >= 0, s413 <= z, s414 >= 0, s414 <= z', s174 >= 0, s174 <= 0 + 1, s29 >= 0, s29 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 2, s100, s695, s696, 1 + p(0) + s697, 1 + s245 + s698, z'', s966) :|: s966 >= 0, s966 <= z'' + x'' + 1, s695 >= 0, s695 <= z, s696 >= 0, s696 <= z', s697 >= 0, s697 <= z, s698 >= 0, s698 <= z', s245 >= 0, s245 <= 0 + 1, s100 >= 0, s100 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 2, s101, s699, s700, 1 + p(0) + s701, 1 + s246 + s702, z'', s967) :|: s967 >= 0, s967 <= z'' + 0 + 1, s699 >= 0, s699 <= z, s700 >= 0, s700 <= z', s701 >= 0, s701 <= z, s702 >= 0, s702 <= z', s246 >= 0, s246 <= 0 + 1, s101 >= 0, s101 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(1, 2, s102, s703, s704, 1 + p(x') + s705, 1 + s247 + s706, z'', s968) :|: s968 >= 0, s968 <= z'' + x1 + 1, s703 >= 0, s703 <= z, s704 >= 0, s704 <= z', s705 >= 0, s705 <= z, s706 >= 0, s706 <= z', s247 >= 0, s247 <= x'' + 1, s102 >= 0, s102 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(1, 2, s103, s707, s708, 1 + p(x') + s709, 1 + s248 + s710, z'', s969) :|: s969 >= 0, s969 <= z'' + 0 + 1, s707 >= 0, s707 <= z, s708 >= 0, s708 <= z', s709 >= 0, s709 <= z, s710 >= 0, s710 <= z', s248 >= 0, s248 <= x'' + 1, s103 >= 0, s103 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 2, s104, s711, s712, 1 + p(x') + s713, 1 + s249 + s714, z'', s970) :|: s970 >= 0, s970 <= z'' + x'' + 1, s711 >= 0, s711 <= z, s712 >= 0, s712 <= z', s713 >= 0, s713 <= z, s714 >= 0, s714 <= z', s249 >= 0, s249 <= 0 + 1, s104 >= 0, s104 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 2, s105, s715, s716, 1 + p(x') + s717, 1 + s250 + s718, z'', s971) :|: s971 >= 0, s971 <= z'' + 0 + 1, s715 >= 0, s715 <= z, s716 >= 0, s716 <= z', s717 >= 0, s717 <= z, s718 >= 0, s718 <= z', s250 >= 0, s250 <= 0 + 1, s105 >= 0, s105 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(1, 2, s106, s719, s720, 1 + p(0) + s721, 1 + s251 + s722, z'', s972) :|: s972 >= 0, s972 <= z'' + x'' + 1, s719 >= 0, s719 <= z, s720 >= 0, s720 <= z', s721 >= 0, s721 <= z, s722 >= 0, s722 <= z', s251 >= 0, s251 <= x' + 1, s106 >= 0, s106 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(1, 2, s107, s723, s724, 1 + p(0) + s725, 1 + s252 + s726, z'', s973) :|: s973 >= 0, s973 <= z'' + 0 + 1, s723 >= 0, s723 <= z, s724 >= 0, s724 <= z', s725 >= 0, s725 <= z, s726 >= 0, s726 <= z', s252 >= 0, s252 <= x' + 1, s107 >= 0, s107 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 2, s108, s727, s728, 1 + p(0) + s729, 1 + s253 + s730, z'', s974) :|: s974 >= 0, s974 <= z'' + x' + 1, s727 >= 0, s727 <= z, s728 >= 0, s728 <= z', s729 >= 0, s729 <= z, s730 >= 0, s730 <= z', s253 >= 0, s253 <= 0 + 1, s108 >= 0, s108 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(1, 2, s109, s731, s732, 1 + p(0) + s733, 1 + s254 + s734, z'', s975) :|: s975 >= 0, s975 <= z'' + 0 + 1, s731 >= 0, s731 <= z, s732 >= 0, s732 <= z', s733 >= 0, s733 <= z, s734 >= 0, s734 <= z', s254 >= 0, s254 <= 0 + 1, s109 >= 0, s109 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 addLists(z, z', z'') -{ 14 + x1 + z'' }-> if(1, 2, s94, s671, s672, 1 + p(x'') + s673, 1 + s239 + s674, z'', s960) :|: s960 >= 0, s960 <= z'' + x2 + 1, s671 >= 0, s671 <= z, s672 >= 0, s672 <= z', s673 >= 0, s673 <= z, s674 >= 0, s674 <= z', s239 >= 0, s239 <= x1 + 1, s94 >= 0, s94 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 13 + x1 + z'' }-> if(1, 2, s95, s675, s676, 1 + p(x'') + s677, 1 + s240 + s678, z'', s961) :|: s961 >= 0, s961 <= z'' + 0 + 1, s675 >= 0, s675 <= z, s676 >= 0, s676 <= z', s677 >= 0, s677 <= z, s678 >= 0, s678 <= z', s240 >= 0, s240 <= x1 + 1, s95 >= 0, s95 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 13 + z'' }-> if(1, 2, s96, s679, s680, 1 + p(x'') + s681, 1 + s241 + s682, z'', s962) :|: s962 >= 0, s962 <= z'' + x1 + 1, s679 >= 0, s679 <= z, s680 >= 0, s680 <= z', s681 >= 0, s681 <= z, s682 >= 0, s682 <= z', s241 >= 0, s241 <= 0 + 1, s96 >= 0, s96 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 2, s97, s683, s684, 1 + p(x'') + s685, 1 + s242 + s686, z'', s963) :|: s963 >= 0, s963 <= z'' + 0 + 1, s683 >= 0, s683 <= z, s684 >= 0, s684 <= z', s685 >= 0, s685 <= z, s686 >= 0, s686 <= z', s242 >= 0, s242 <= 0 + 1, s97 >= 0, s97 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(1, 2, s98, s687, s688, 1 + p(0) + s689, 1 + s243 + s690, z'', s964) :|: s964 >= 0, s964 <= z'' + x1 + 1, s687 >= 0, s687 <= z, s688 >= 0, s688 <= z', s689 >= 0, s689 <= z, s690 >= 0, s690 <= z', s243 >= 0, s243 <= x'' + 1, s98 >= 0, s98 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(1, 2, s99, s691, s692, 1 + p(0) + s693, 1 + s244 + s694, z'', s965) :|: s965 >= 0, s965 <= z'' + 0 + 1, s691 >= 0, s691 <= z, s692 >= 0, s692 <= z', s693 >= 0, s693 <= z, s694 >= 0, s694 <= z', s244 >= 0, s244 <= x'' + 1, s99 >= 0, s99 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 14 + x2 + z'' }-> if(1, 1, s126, s799, s800, 1 + p(x1) + s801, 1 + s271 + s802, z'', s992) :|: s992 >= 0, s992 <= z'' + x3 + 1, s799 >= 0, s799 <= z, s800 >= 0, s800 <= z', s801 >= 0, s801 <= z, s802 >= 0, s802 <= z', s271 >= 0, s271 <= x2 + 1, s126 >= 0, s126 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0, z' = 1 + x3 + xs4, xs4 >= 0, x3 >= 0 addLists(z, z', z'') -{ 13 + x2 + z'' }-> if(1, 1, s127, s803, s804, 1 + p(x1) + s805, 1 + s272 + s806, z'', s993) :|: s993 >= 0, s993 <= z'' + 0 + 1, s803 >= 0, s803 <= z, s804 >= 0, s804 <= z', s805 >= 0, s805 <= z, s806 >= 0, s806 <= z', s272 >= 0, s272 <= x2 + 1, s127 >= 0, s127 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 13 + z'' }-> if(1, 1, s128, s807, s808, 1 + p(x1) + s809, 1 + s273 + s810, z'', s994) :|: s994 >= 0, s994 <= z'' + x2 + 1, s807 >= 0, s807 <= z, s808 >= 0, s808 <= z', s809 >= 0, s809 <= z, s810 >= 0, s810 <= z', s273 >= 0, s273 <= 0 + 1, s128 >= 0, s128 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 1, s129, s811, s812, 1 + p(x1) + s813, 1 + s274 + s814, z'', s995) :|: s995 >= 0, s995 <= z'' + 0 + 1, s811 >= 0, s811 <= z, s812 >= 0, s812 <= z', s813 >= 0, s813 <= z, s814 >= 0, s814 <= z', s274 >= 0, s274 <= 0 + 1, s129 >= 0, s129 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 13 + x1 + z'' }-> if(1, 1, s130, s815, s816, 1 + p(0) + s817, 1 + s275 + s818, z'', s996) :|: s996 >= 0, s996 <= z'' + x2 + 1, s815 >= 0, s815 <= z, s816 >= 0, s816 <= z', s817 >= 0, s817 <= z, s818 >= 0, s818 <= z', s275 >= 0, s275 <= x1 + 1, s130 >= 0, s130 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 + x1 + z'' }-> if(1, 1, s131, s819, s820, 1 + p(0) + s821, 1 + s276 + s822, z'', s997) :|: s997 >= 0, s997 <= z'' + 0 + 1, s819 >= 0, s819 <= z, s820 >= 0, s820 <= z', s821 >= 0, s821 <= z, s822 >= 0, s822 <= z', s276 >= 0, s276 <= x1 + 1, s131 >= 0, s131 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 1, s132, s823, s824, 1 + p(0) + s825, 1 + s277 + s826, z'', s998) :|: s998 >= 0, s998 <= z'' + x1 + 1, s823 >= 0, s823 <= z, s824 >= 0, s824 <= z', s825 >= 0, s825 <= z, s826 >= 0, s826 <= z', s277 >= 0, s277 <= 0 + 1, s132 >= 0, s132 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 1, s133, s827, s828, 1 + p(0) + s829, 1 + s278 + s830, z'', s999) :|: s999 >= 0, s999 <= z'' + 0 + 1, s827 >= 0, s827 <= z, s828 >= 0, s828 <= z', s829 >= 0, s829 <= z, s830 >= 0, s830 <= z', s278 >= 0, s278 <= 0 + 1, s133 >= 0, s133 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + x1 + z'' }-> if(1, 1, s134, s831, s832, 1 + p(x'') + s833, 1 + s279 + s834, z'', s1000) :|: s1000 >= 0, s1000 <= z'' + x2 + 1, s831 >= 0, s831 <= z, s832 >= 0, s832 <= z', s833 >= 0, s833 <= z, s834 >= 0, s834 <= z', s279 >= 0, s279 <= x1 + 1, s134 >= 0, s134 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 + x1 + z'' }-> if(1, 1, s135, s835, s836, 1 + p(x'') + s837, 1 + s280 + s838, z'', s1001) :|: s1001 >= 0, s1001 <= z'' + 0 + 1, s835 >= 0, s835 <= z, s836 >= 0, s836 <= z', s837 >= 0, s837 <= z, s838 >= 0, s838 <= z', s280 >= 0, s280 <= x1 + 1, s135 >= 0, s135 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 1, s136, s839, s840, 1 + p(x'') + s841, 1 + s281 + s842, z'', s1002) :|: s1002 >= 0, s1002 <= z'' + x1 + 1, s839 >= 0, s839 <= z, s840 >= 0, s840 <= z', s841 >= 0, s841 <= z, s842 >= 0, s842 <= z', s281 >= 0, s281 <= 0 + 1, s136 >= 0, s136 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 1, s137, s843, s844, 1 + p(x'') + s845, 1 + s282 + s846, z'', s1003) :|: s1003 >= 0, s1003 <= z'' + 0 + 1, s843 >= 0, s843 <= z, s844 >= 0, s844 <= z', s845 >= 0, s845 <= z, s846 >= 0, s846 <= z', s282 >= 0, s282 <= 0 + 1, s137 >= 0, s137 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(1, 1, s138, s847, s848, 1 + p(0) + s849, 1 + s283 + s850, z'', s1004) :|: s1004 >= 0, s1004 <= z'' + x1 + 1, s847 >= 0, s847 <= z, s848 >= 0, s848 <= z', s849 >= 0, s849 <= z, s850 >= 0, s850 <= z', s283 >= 0, s283 <= x'' + 1, s138 >= 0, s138 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' + z'' }-> if(1, 1, s139, s851, s852, 1 + p(0) + s853, 1 + s284 + s854, z'', s1005) :|: s1005 >= 0, s1005 <= z'' + 0 + 1, s851 >= 0, s851 <= z, s852 >= 0, s852 <= z', s853 >= 0, s853 <= z, s854 >= 0, s854 <= z', s284 >= 0, s284 <= x'' + 1, s139 >= 0, s139 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 1, s140, s855, s856, 1 + p(0) + s857, 1 + s285 + s858, z'', s1006) :|: s1006 >= 0, s1006 <= z'' + x'' + 1, s855 >= 0, s855 <= z, s856 >= 0, s856 <= z', s857 >= 0, s857 <= z, s858 >= 0, s858 <= z', s285 >= 0, s285 <= 0 + 1, s140 >= 0, s140 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(1, 1, s141, s859, s860, 1 + p(0) + s861, 1 + s286 + s862, z'', s1007) :|: s1007 >= 0, s1007 <= z'' + 0 + 1, s859 >= 0, s859 <= z, s860 >= 0, s860 <= z', s861 >= 0, s861 <= z, s862 >= 0, s862 <= z', s286 >= 0, s286 <= 0 + 1, s141 >= 0, s141 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 13 + x1 + z'' }-> if(1, 0, s110, s735, s736, 1 + p(x'') + s737, 1 + s255 + s738, z'', s976) :|: s976 >= 0, s976 <= z'' + x2 + 1, s735 >= 0, s735 <= z, s736 >= 0, s736 <= z', s737 >= 0, s737 <= z, s738 >= 0, s738 <= z', s255 >= 0, s255 <= x1 + 1, s110 >= 0, s110 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 + x1 + z'' }-> if(1, 0, s111, s739, s740, 1 + p(x'') + s741, 1 + s256 + s742, z'', s977) :|: s977 >= 0, s977 <= z'' + 0 + 1, s739 >= 0, s739 <= z, s740 >= 0, s740 <= z', s741 >= 0, s741 <= z, s742 >= 0, s742 <= z', s256 >= 0, s256 <= x1 + 1, s111 >= 0, s111 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 0, s112, s743, s744, 1 + p(x'') + s745, 1 + s257 + s746, z'', s978) :|: s978 >= 0, s978 <= z'' + x1 + 1, s743 >= 0, s743 <= z, s744 >= 0, s744 <= z', s745 >= 0, s745 <= z, s746 >= 0, s746 <= z', s257 >= 0, s257 <= 0 + 1, s112 >= 0, s112 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 0, s113, s747, s748, 1 + p(x'') + s749, 1 + s258 + s750, z'', s979) :|: s979 >= 0, s979 <= z'' + 0 + 1, s747 >= 0, s747 <= z, s748 >= 0, s748 <= z', s749 >= 0, s749 <= z, s750 >= 0, s750 <= z', s258 >= 0, s258 <= 0 + 1, s113 >= 0, s113 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(1, 0, s114, s751, s752, 1 + p(0) + s753, 1 + s259 + s754, z'', s980) :|: s980 >= 0, s980 <= z'' + x1 + 1, s751 >= 0, s751 <= z, s752 >= 0, s752 <= z', s753 >= 0, s753 <= z, s754 >= 0, s754 <= z', s259 >= 0, s259 <= x'' + 1, s114 >= 0, s114 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' + z'' }-> if(1, 0, s115, s755, s756, 1 + p(0) + s757, 1 + s260 + s758, z'', s981) :|: s981 >= 0, s981 <= z'' + 0 + 1, s755 >= 0, s755 <= z, s756 >= 0, s756 <= z', s757 >= 0, s757 <= z, s758 >= 0, s758 <= z', s260 >= 0, s260 <= x'' + 1, s115 >= 0, s115 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 0, s116, s759, s760, 1 + p(0) + s761, 1 + s261 + s762, z'', s982) :|: s982 >= 0, s982 <= z'' + x'' + 1, s759 >= 0, s759 <= z, s760 >= 0, s760 <= z', s761 >= 0, s761 <= z, s762 >= 0, s762 <= z', s261 >= 0, s261 <= 0 + 1, s116 >= 0, s116 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(1, 0, s117, s763, s764, 1 + p(0) + s765, 1 + s262 + s766, z'', s983) :|: s983 >= 0, s983 <= z'' + 0 + 1, s763 >= 0, s763 <= z, s764 >= 0, s764 <= z', s765 >= 0, s765 <= z, s766 >= 0, s766 <= z', s262 >= 0, s262 <= 0 + 1, s117 >= 0, s117 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(1, 0, s118, s767, s768, 1 + p(x') + s769, 1 + s263 + s770, z'', s984) :|: s984 >= 0, s984 <= z'' + x1 + 1, s767 >= 0, s767 <= z, s768 >= 0, s768 <= z', s769 >= 0, s769 <= z, s770 >= 0, s770 <= z', s263 >= 0, s263 <= x'' + 1, s118 >= 0, s118 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' + z'' }-> if(1, 0, s119, s771, s772, 1 + p(x') + s773, 1 + s264 + s774, z'', s985) :|: s985 >= 0, s985 <= z'' + 0 + 1, s771 >= 0, s771 <= z, s772 >= 0, s772 <= z', s773 >= 0, s773 <= z, s774 >= 0, s774 <= z', s264 >= 0, s264 <= x'' + 1, s119 >= 0, s119 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 0, s120, s775, s776, 1 + p(x') + s777, 1 + s265 + s778, z'', s986) :|: s986 >= 0, s986 <= z'' + x'' + 1, s775 >= 0, s775 <= z, s776 >= 0, s776 <= z', s777 >= 0, s777 <= z, s778 >= 0, s778 <= z', s265 >= 0, s265 <= 0 + 1, s120 >= 0, s120 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(1, 0, s121, s779, s780, 1 + p(x') + s781, 1 + s266 + s782, z'', s987) :|: s987 >= 0, s987 <= z'' + 0 + 1, s779 >= 0, s779 <= z, s780 >= 0, s780 <= z', s781 >= 0, s781 <= z, s782 >= 0, s782 <= z', s266 >= 0, s266 <= 0 + 1, s121 >= 0, s121 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(1, 0, s122, s783, s784, 1 + p(0) + s785, 1 + s267 + s786, z'', s988) :|: s988 >= 0, s988 <= z'' + x'' + 1, s783 >= 0, s783 <= z, s784 >= 0, s784 <= z', s785 >= 0, s785 <= z, s786 >= 0, s786 <= z', s267 >= 0, s267 <= x' + 1, s122 >= 0, s122 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' + z'' }-> if(1, 0, s123, s787, s788, 1 + p(0) + s789, 1 + s268 + s790, z'', s989) :|: s989 >= 0, s989 <= z'' + 0 + 1, s787 >= 0, s787 <= z, s788 >= 0, s788 <= z', s789 >= 0, s789 <= z, s790 >= 0, s790 <= z', s268 >= 0, s268 <= x' + 1, s123 >= 0, s123 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(1, 0, s124, s791, s792, 1 + p(0) + s793, 1 + s269 + s794, z'', s990) :|: s990 >= 0, s990 <= z'' + x' + 1, s791 >= 0, s791 <= z, s792 >= 0, s792 <= z', s793 >= 0, s793 <= z, s794 >= 0, s794 <= z', s269 >= 0, s269 <= 0 + 1, s124 >= 0, s124 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(1, 0, s125, s795, s796, 1 + p(0) + s797, 1 + s270 + s798, z'', s991) :|: s991 >= 0, s991 <= z'' + 0 + 1, s795 >= 0, s795 <= z, s796 >= 0, s796 <= z', s797 >= 0, s797 <= z, s798 >= 0, s798 <= z', s270 >= 0, s270 <= 0 + 1, s125 >= 0, s125 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(0, 2, s46, s479, s480, 1 + p(x') + s481, 1 + s191 + s482, z'', s912) :|: s912 >= 0, s912 <= z'' + x1 + 1, s479 >= 0, s479 <= z, s480 >= 0, s480 <= z', s481 >= 0, s481 <= z, s482 >= 0, s482 <= z', s191 >= 0, s191 <= x'' + 1, s46 >= 0, s46 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(0, 2, s47, s483, s484, 1 + p(x') + s485, 1 + s192 + s486, z'', s913) :|: s913 >= 0, s913 <= z'' + 0 + 1, s483 >= 0, s483 <= z, s484 >= 0, s484 <= z', s485 >= 0, s485 <= z, s486 >= 0, s486 <= z', s192 >= 0, s192 <= x'' + 1, s47 >= 0, s47 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(0, 2, s48, s487, s488, 1 + p(x') + s489, 1 + s193 + s490, z'', s914) :|: s914 >= 0, s914 <= z'' + x'' + 1, s487 >= 0, s487 <= z, s488 >= 0, s488 <= z', s489 >= 0, s489 <= z, s490 >= 0, s490 <= z', s193 >= 0, s193 <= 0 + 1, s48 >= 0, s48 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 2, s49, s491, s492, 1 + p(x') + s493, 1 + s194 + s494, z'', s915) :|: s915 >= 0, s915 <= z'' + 0 + 1, s491 >= 0, s491 <= z, s492 >= 0, s492 <= z', s493 >= 0, s493 <= z, s494 >= 0, s494 <= z', s194 >= 0, s194 <= 0 + 1, s49 >= 0, s49 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(0, 2, s50, s495, s496, 1 + p(0) + s497, 1 + s195 + s498, z'', s916) :|: s916 >= 0, s916 <= z'' + x'' + 1, s495 >= 0, s495 <= z, s496 >= 0, s496 <= z', s497 >= 0, s497 <= z, s498 >= 0, s498 <= z', s195 >= 0, s195 <= x' + 1, s50 >= 0, s50 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(0, 2, s51, s499, s500, 1 + p(0) + s501, 1 + s196 + s502, z'', s917) :|: s917 >= 0, s917 <= z'' + 0 + 1, s499 >= 0, s499 <= z, s500 >= 0, s500 <= z', s501 >= 0, s501 <= z, s502 >= 0, s502 <= z', s196 >= 0, s196 <= x' + 1, s51 >= 0, s51 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 2, s52, s503, s504, 1 + p(0) + s505, 1 + s197 + s506, z'', s918) :|: s918 >= 0, s918 <= z'' + x' + 1, s503 >= 0, s503 <= z, s504 >= 0, s504 <= z', s505 >= 0, s505 <= z, s506 >= 0, s506 <= z', s197 >= 0, s197 <= 0 + 1, s52 >= 0, s52 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 2, s53, s507, s508, 1 + p(0) + s509, 1 + s198 + s510, z'', s919) :|: s919 >= 0, s919 <= z'' + 0 + 1, s507 >= 0, s507 <= z, s508 >= 0, s508 <= z', s509 >= 0, s509 <= z, s510 >= 0, s510 <= z', s198 >= 0, s198 <= 0 + 1, s53 >= 0, s53 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(0, 2, s54, s511, s512, 1 + p(x) + s513, 1 + s199 + s514, z'', s920) :|: s920 >= 0, s920 <= z'' + x'' + 1, s511 >= 0, s511 <= z, s512 >= 0, s512 <= z', s513 >= 0, s513 <= z, s514 >= 0, s514 <= z', s199 >= 0, s199 <= x' + 1, s54 >= 0, s54 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(0, 2, s55, s515, s516, 1 + p(x) + s517, 1 + s200 + s518, z'', s921) :|: s921 >= 0, s921 <= z'' + 0 + 1, s515 >= 0, s515 <= z, s516 >= 0, s516 <= z', s517 >= 0, s517 <= z, s518 >= 0, s518 <= z', s200 >= 0, s200 <= x' + 1, s55 >= 0, s55 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 2, s56, s519, s520, 1 + p(x) + s521, 1 + s201 + s522, z'', s922) :|: s922 >= 0, s922 <= z'' + x' + 1, s519 >= 0, s519 <= z, s520 >= 0, s520 <= z', s521 >= 0, s521 <= z, s522 >= 0, s522 <= z', s201 >= 0, s201 <= 0 + 1, s56 >= 0, s56 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 2, s57, s523, s524, 1 + p(x) + s525, 1 + s202 + s526, z'', s923) :|: s923 >= 0, s923 <= z'' + 0 + 1, s523 >= 0, s523 <= z, s524 >= 0, s524 <= z', s525 >= 0, s525 <= z, s526 >= 0, s526 <= z', s202 >= 0, s202 <= 0 + 1, s57 >= 0, s57 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 11 + x + z'' }-> if(0, 2, s58, s527, s528, 1 + p(0) + s529, 1 + s203 + s530, z'', s924) :|: s924 >= 0, s924 <= z'' + x' + 1, s527 >= 0, s527 <= z, s528 >= 0, s528 <= z', s529 >= 0, s529 <= z, s530 >= 0, s530 <= z', s203 >= 0, s203 <= x + 1, s58 >= 0, s58 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + x + z'' }-> if(0, 2, s59, s531, s532, 1 + p(0) + s533, 1 + s204 + s534, z'', s925) :|: s925 >= 0, s925 <= z'' + 0 + 1, s531 >= 0, s531 <= z, s532 >= 0, s532 <= z', s533 >= 0, s533 <= z, s534 >= 0, s534 <= z', s204 >= 0, s204 <= x + 1, s59 >= 0, s59 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 2, s60, s535, s536, 1 + p(0) + s537, 1 + s205 + s538, z'', s926) :|: s926 >= 0, s926 <= z'' + x + 1, s535 >= 0, s535 <= z, s536 >= 0, s536 <= z', s537 >= 0, s537 <= z, s538 >= 0, s538 <= z', s205 >= 0, s205 <= 0 + 1, s60 >= 0, s60 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(0, 2, s61, s539, s540, 1 + p(0) + s541, 1 + s206 + s542, z'', s927) :|: s927 >= 0, s927 <= z'' + 0 + 1, s539 >= 0, s539 <= z, s540 >= 0, s540 <= z', s541 >= 0, s541 <= z, s542 >= 0, s542 <= z', s206 >= 0, s206 <= 0 + 1, s61 >= 0, s61 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 addLists(z, z', z'') -{ 13 + x1 + z'' }-> if(0, 1, s78, s607, s608, 1 + p(x'') + s609, 1 + s223 + s610, z'', s944) :|: s944 >= 0, s944 <= z'' + x2 + 1, s607 >= 0, s607 <= z, s608 >= 0, s608 <= z', s609 >= 0, s609 <= z, s610 >= 0, s610 <= z', s223 >= 0, s223 <= x1 + 1, s78 >= 0, s78 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 + x1 + z'' }-> if(0, 1, s79, s611, s612, 1 + p(x'') + s613, 1 + s224 + s614, z'', s945) :|: s945 >= 0, s945 <= z'' + 0 + 1, s611 >= 0, s611 <= z, s612 >= 0, s612 <= z', s613 >= 0, s613 <= z, s614 >= 0, s614 <= z', s224 >= 0, s224 <= x1 + 1, s79 >= 0, s79 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(0, 1, s80, s615, s616, 1 + p(x'') + s617, 1 + s225 + s618, z'', s946) :|: s946 >= 0, s946 <= z'' + x1 + 1, s615 >= 0, s615 <= z, s616 >= 0, s616 <= z', s617 >= 0, s617 <= z, s618 >= 0, s618 <= z', s225 >= 0, s225 <= 0 + 1, s80 >= 0, s80 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 1, s81, s619, s620, 1 + p(x'') + s621, 1 + s226 + s622, z'', s947) :|: s947 >= 0, s947 <= z'' + 0 + 1, s619 >= 0, s619 <= z, s620 >= 0, s620 <= z', s621 >= 0, s621 <= z, s622 >= 0, s622 <= z', s226 >= 0, s226 <= 0 + 1, s81 >= 0, s81 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(0, 1, s82, s623, s624, 1 + p(0) + s625, 1 + s227 + s626, z'', s948) :|: s948 >= 0, s948 <= z'' + x1 + 1, s623 >= 0, s623 <= z, s624 >= 0, s624 <= z', s625 >= 0, s625 <= z, s626 >= 0, s626 <= z', s227 >= 0, s227 <= x'' + 1, s82 >= 0, s82 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' + z'' }-> if(0, 1, s83, s627, s628, 1 + p(0) + s629, 1 + s228 + s630, z'', s949) :|: s949 >= 0, s949 <= z'' + 0 + 1, s627 >= 0, s627 <= z, s628 >= 0, s628 <= z', s629 >= 0, s629 <= z, s630 >= 0, s630 <= z', s228 >= 0, s228 <= x'' + 1, s83 >= 0, s83 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 1, s84, s631, s632, 1 + p(0) + s633, 1 + s229 + s634, z'', s950) :|: s950 >= 0, s950 <= z'' + x'' + 1, s631 >= 0, s631 <= z, s632 >= 0, s632 <= z', s633 >= 0, s633 <= z, s634 >= 0, s634 <= z', s229 >= 0, s229 <= 0 + 1, s84 >= 0, s84 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 1, s85, s635, s636, 1 + p(0) + s637, 1 + s230 + s638, z'', s951) :|: s951 >= 0, s951 <= z'' + 0 + 1, s635 >= 0, s635 <= z, s636 >= 0, s636 <= z', s637 >= 0, s637 <= z, s638 >= 0, s638 <= z', s230 >= 0, s230 <= 0 + 1, s85 >= 0, s85 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(0, 1, s86, s639, s640, 1 + p(x') + s641, 1 + s231 + s642, z'', s952) :|: s952 >= 0, s952 <= z'' + x1 + 1, s639 >= 0, s639 <= z, s640 >= 0, s640 <= z', s641 >= 0, s641 <= z, s642 >= 0, s642 <= z', s231 >= 0, s231 <= x'' + 1, s86 >= 0, s86 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' + z'' }-> if(0, 1, s87, s643, s644, 1 + p(x') + s645, 1 + s232 + s646, z'', s953) :|: s953 >= 0, s953 <= z'' + 0 + 1, s643 >= 0, s643 <= z, s644 >= 0, s644 <= z', s645 >= 0, s645 <= z, s646 >= 0, s646 <= z', s232 >= 0, s232 <= x'' + 1, s87 >= 0, s87 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 1, s88, s647, s648, 1 + p(x') + s649, 1 + s233 + s650, z'', s954) :|: s954 >= 0, s954 <= z'' + x'' + 1, s647 >= 0, s647 <= z, s648 >= 0, s648 <= z', s649 >= 0, s649 <= z, s650 >= 0, s650 <= z', s233 >= 0, s233 <= 0 + 1, s88 >= 0, s88 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 1, s89, s651, s652, 1 + p(x') + s653, 1 + s234 + s654, z'', s955) :|: s955 >= 0, s955 <= z'' + 0 + 1, s651 >= 0, s651 <= z, s652 >= 0, s652 <= z', s653 >= 0, s653 <= z, s654 >= 0, s654 <= z', s234 >= 0, s234 <= 0 + 1, s89 >= 0, s89 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(0, 1, s90, s655, s656, 1 + p(0) + s657, 1 + s235 + s658, z'', s956) :|: s956 >= 0, s956 <= z'' + x'' + 1, s655 >= 0, s655 <= z, s656 >= 0, s656 <= z', s657 >= 0, s657 <= z, s658 >= 0, s658 <= z', s235 >= 0, s235 <= x' + 1, s90 >= 0, s90 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' + z'' }-> if(0, 1, s91, s659, s660, 1 + p(0) + s661, 1 + s236 + s662, z'', s957) :|: s957 >= 0, s957 <= z'' + 0 + 1, s659 >= 0, s659 <= z, s660 >= 0, s660 <= z', s661 >= 0, s661 <= z, s662 >= 0, s662 <= z', s236 >= 0, s236 <= x' + 1, s91 >= 0, s91 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 1, s92, s663, s664, 1 + p(0) + s665, 1 + s237 + s666, z'', s958) :|: s958 >= 0, s958 <= z'' + x' + 1, s663 >= 0, s663 <= z, s664 >= 0, s664 <= z', s665 >= 0, s665 <= z, s666 >= 0, s666 <= z', s237 >= 0, s237 <= 0 + 1, s92 >= 0, s92 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(0, 1, s93, s667, s668, 1 + p(0) + s669, 1 + s238 + s670, z'', s959) :|: s959 >= 0, s959 <= z'' + 0 + 1, s667 >= 0, s667 <= z, s668 >= 0, s668 <= z', s669 >= 0, s669 <= z, s670 >= 0, s670 <= z', s238 >= 0, s238 <= 0 + 1, s93 >= 0, s93 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(0, 0, s62, s543, s544, 1 + p(x') + s545, 1 + s207 + s546, z'', s928) :|: s928 >= 0, s928 <= z'' + x1 + 1, s543 >= 0, s543 <= z, s544 >= 0, s544 <= z', s545 >= 0, s545 <= z, s546 >= 0, s546 <= z', s207 >= 0, s207 <= x'' + 1, s62 >= 0, s62 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' + z'' }-> if(0, 0, s63, s547, s548, 1 + p(x') + s549, 1 + s208 + s550, z'', s929) :|: s929 >= 0, s929 <= z'' + 0 + 1, s547 >= 0, s547 <= z, s548 >= 0, s548 <= z', s549 >= 0, s549 <= z, s550 >= 0, s550 <= z', s208 >= 0, s208 <= x'' + 1, s63 >= 0, s63 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 0, s64, s551, s552, 1 + p(x') + s553, 1 + s209 + s554, z'', s930) :|: s930 >= 0, s930 <= z'' + x'' + 1, s551 >= 0, s551 <= z, s552 >= 0, s552 <= z', s553 >= 0, s553 <= z, s554 >= 0, s554 <= z', s209 >= 0, s209 <= 0 + 1, s64 >= 0, s64 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 0, s65, s555, s556, 1 + p(x') + s557, 1 + s210 + s558, z'', s931) :|: s931 >= 0, s931 <= z'' + 0 + 1, s555 >= 0, s555 <= z, s556 >= 0, s556 <= z', s557 >= 0, s557 <= z, s558 >= 0, s558 <= z', s210 >= 0, s210 <= 0 + 1, s65 >= 0, s65 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(0, 0, s66, s559, s560, 1 + p(0) + s561, 1 + s211 + s562, z'', s932) :|: s932 >= 0, s932 <= z'' + x'' + 1, s559 >= 0, s559 <= z, s560 >= 0, s560 <= z', s561 >= 0, s561 <= z, s562 >= 0, s562 <= z', s211 >= 0, s211 <= x' + 1, s66 >= 0, s66 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' + z'' }-> if(0, 0, s67, s563, s564, 1 + p(0) + s565, 1 + s212 + s566, z'', s933) :|: s933 >= 0, s933 <= z'' + 0 + 1, s563 >= 0, s563 <= z, s564 >= 0, s564 <= z', s565 >= 0, s565 <= z, s566 >= 0, s566 <= z', s212 >= 0, s212 <= x' + 1, s67 >= 0, s67 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 0, s68, s567, s568, 1 + p(0) + s569, 1 + s213 + s570, z'', s934) :|: s934 >= 0, s934 <= z'' + x' + 1, s567 >= 0, s567 <= z, s568 >= 0, s568 <= z', s569 >= 0, s569 <= z, s570 >= 0, s570 <= z', s213 >= 0, s213 <= 0 + 1, s68 >= 0, s68 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(0, 0, s69, s571, s572, 1 + p(0) + s573, 1 + s214 + s574, z'', s935) :|: s935 >= 0, s935 <= z'' + 0 + 1, s571 >= 0, s571 <= z, s572 >= 0, s572 <= z', s573 >= 0, s573 <= z, s574 >= 0, s574 <= z', s214 >= 0, s214 <= 0 + 1, s69 >= 0, s69 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(0, 0, s70, s575, s576, 1 + p(x) + s577, 1 + s215 + s578, z'', s936) :|: s936 >= 0, s936 <= z'' + x'' + 1, s575 >= 0, s575 <= z, s576 >= 0, s576 <= z', s577 >= 0, s577 <= z, s578 >= 0, s578 <= z', s215 >= 0, s215 <= x' + 1, s70 >= 0, s70 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' + z'' }-> if(0, 0, s71, s579, s580, 1 + p(x) + s581, 1 + s216 + s582, z'', s937) :|: s937 >= 0, s937 <= z'' + 0 + 1, s579 >= 0, s579 <= z, s580 >= 0, s580 <= z', s581 >= 0, s581 <= z, s582 >= 0, s582 <= z', s216 >= 0, s216 <= x' + 1, s71 >= 0, s71 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 0, s72, s583, s584, 1 + p(x) + s585, 1 + s217 + s586, z'', s938) :|: s938 >= 0, s938 <= z'' + x' + 1, s583 >= 0, s583 <= z, s584 >= 0, s584 <= z', s585 >= 0, s585 <= z, s586 >= 0, s586 <= z', s217 >= 0, s217 <= 0 + 1, s72 >= 0, s72 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(0, 0, s73, s587, s588, 1 + p(x) + s589, 1 + s218 + s590, z'', s939) :|: s939 >= 0, s939 <= z'' + 0 + 1, s587 >= 0, s587 <= z, s588 >= 0, s588 <= z', s589 >= 0, s589 <= z, s590 >= 0, s590 <= z', s218 >= 0, s218 <= 0 + 1, s73 >= 0, s73 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 10 + x + z'' }-> if(0, 0, s74, s591, s592, 1 + p(0) + s593, 1 + s219 + s594, z'', s940) :|: s940 >= 0, s940 <= z'' + x' + 1, s591 >= 0, s591 <= z, s592 >= 0, s592 <= z', s593 >= 0, s593 <= z, s594 >= 0, s594 <= z', s219 >= 0, s219 <= x + 1, s74 >= 0, s74 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 + x + z'' }-> if(0, 0, s75, s595, s596, 1 + p(0) + s597, 1 + s220 + s598, z'', s941) :|: s941 >= 0, s941 <= z'' + 0 + 1, s595 >= 0, s595 <= z, s596 >= 0, s596 <= z', s597 >= 0, s597 <= z, s598 >= 0, s598 <= z', s220 >= 0, s220 <= x + 1, s75 >= 0, s75 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(0, 0, s76, s599, s600, 1 + p(0) + s601, 1 + s221 + s602, z'', s942) :|: s942 >= 0, s942 <= z'' + x + 1, s599 >= 0, s599 <= z, s600 >= 0, s600 <= z', s601 >= 0, s601 <= z, s602 >= 0, s602 <= z', s221 >= 0, s221 <= 0 + 1, s76 >= 0, s76 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 8 + z'' }-> if(0, 0, s77, s603, s604, 1 + p(0) + s605, 1 + s222 + s606, z'', s943) :|: s943 >= 0, s943 <= z'' + 0 + 1, s603 >= 0, s603 <= z, s604 >= 0, s604 <= z', s605 >= 0, s605 <= z, s606 >= 0, s606 <= z', s222 >= 0, s222 <= 0 + 1, s77 >= 0, s77 <= 2, z >= 0, z' >= 0, z'' >= 0 append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 append(z, z') -{ 2 + ys }-> 1 + y + s863 :|: s863 >= 0, s863 <= ys + z' + 1, ys >= 0, y >= 0, z' >= 0, z = 1 + y + ys append(z, z') -{ 1 }-> 1 + z' + 1 :|: z = 1, z' >= 0 head(z) -{ 1 }-> x :|: z = 1 + x + xs, xs >= 0, x >= 0 head(z) -{ 0 }-> 0 :|: z >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> z5 :|: z1 >= 0, z' = 2, z5 >= 0, z6 >= 0, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z1, z2, z6) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 2, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z3, z4, z5) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 1, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z5 >= 0, z6 >= 0, z' = 1, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z' = 2, z = 1, z5 >= 0, z6 >= 0, z4 >= 0, z'' >= 0, z3 >= 0, z2 >= 0 inc(z) -{ 1 + z }-> 1 + s142 :|: s142 >= 0, s142 <= z - 1 + 1, z - 1 >= 0 inc(z) -{ 1 }-> 1 + 0 :|: z = 0 isEmpty(z) -{ 1 }-> 2 :|: z = 1 isEmpty(z) -{ 1 }-> 1 :|: z = 1 + x + xs, xs >= 0, x >= 0 isEmpty(z) -{ 0 }-> 0 :|: z >= 0 isZero(z) -{ 1 }-> 2 :|: z = 0 isZero(z) -{ 1 }-> 1 :|: z - 1 >= 0 p(z) -{ 1 }-> 0 :|: z = 1 + 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 1 }-> 1 + p(1 + (z - 2)) :|: z - 2 >= 0 tail(z) -{ 1 }-> xs :|: z = 1 + x + xs, xs >= 0, x >= 0 tail(z) -{ 1 }-> 1 :|: z = 1 tail(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {p}, {addLists,if}, {addList} Previous analysis results are: isEmpty: runtime: O(1) [1], size: O(1) [2] isZero: runtime: O(1) [1], size: O(1) [2] inc: runtime: O(n^1) [1 + z], size: O(n^1) [1 + z] tail: runtime: O(1) [1], size: O(n^1) [z] append: runtime: O(n^1) [1 + z], size: O(n^1) [1 + z + z'] head: runtime: O(1) [1], size: O(n^1) [z] ---------------------------------------- (57) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (58) Obligation: Complexity RNTS consisting of the following rules: addList(z, z') -{ 1 }-> addLists(z, z', 1) :|: z >= 0, z' >= 0 addLists(z, z', z'') -{ 14 + x'' + z'' }-> if(2, 2, s, s287, s288, 1 + p(x') + s289, 1 + s143 + s290, z'', s864) :|: s864 >= 0, s864 <= z'' + x1 + 1, s287 >= 0, s287 <= z, s288 >= 0, s288 <= z', s289 >= 0, s289 <= z, s290 >= 0, s290 <= z', s143 >= 0, s143 <= x'' + 1, s >= 0, s <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(2, 2, s', s291, s292, 1 + p(x') + s293, 1 + s144 + s294, z'', s865) :|: s865 >= 0, s865 <= z'' + 0 + 1, s291 >= 0, s291 <= z, s292 >= 0, s292 <= z', s293 >= 0, s293 <= z, s294 >= 0, s294 <= z', s144 >= 0, s144 <= x'' + 1, s' >= 0, s' <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + z'' }-> if(2, 2, s'', s295, s296, 1 + p(x') + s297, 1 + s145 + s298, z'', s866) :|: s866 >= 0, s866 <= z'' + x'' + 1, s295 >= 0, s295 <= z, s296 >= 0, s296 <= z', s297 >= 0, s297 <= z, s298 >= 0, s298 <= z', s145 >= 0, s145 <= 0 + 1, s'' >= 0, s'' <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 2, s1, s299, s300, 1 + p(x') + s301, 1 + s146 + s302, z'', s867) :|: s867 >= 0, s867 <= z'' + 0 + 1, s299 >= 0, s299 <= z, s300 >= 0, s300 <= z', s301 >= 0, s301 <= z, s302 >= 0, s302 <= z', s146 >= 0, s146 <= 0 + 1, s1 >= 0, s1 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x + z'' }-> if(2, 2, s10, s335, s336, 1 + p(0) + s337, 1 + s155 + s338, z'', s876) :|: s876 >= 0, s876 <= z'' + x' + 1, s335 >= 0, s335 <= z, s336 >= 0, s336 <= z', s337 >= 0, s337 <= z, s338 >= 0, s338 <= z', s155 >= 0, s155 <= x + 1, s10 >= 0, s10 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x + z'' }-> if(2, 2, s11, s339, s340, 1 + p(0) + s341, 1 + s156 + s342, z'', s877) :|: s877 >= 0, s877 <= z'' + 0 + 1, s339 >= 0, s339 <= z, s340 >= 0, s340 <= z', s341 >= 0, s341 <= z, s342 >= 0, s342 <= z', s156 >= 0, s156 <= x + 1, s11 >= 0, s11 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 2, s12, s343, s344, 1 + p(0) + s345, 1 + s157 + s346, z'', s878) :|: s878 >= 0, s878 <= z'' + x + 1, s343 >= 0, s343 <= z, s344 >= 0, s344 <= z', s345 >= 0, s345 <= z, s346 >= 0, s346 <= z', s157 >= 0, s157 <= 0 + 1, s12 >= 0, s12 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(2, 2, s13, s347, s348, 1 + p(0) + s349, 1 + s158 + s350, z'', s879) :|: s879 >= 0, s879 <= z'' + 0 + 1, s347 >= 0, s347 <= z, s348 >= 0, s348 <= z', s349 >= 0, s349 <= z, s350 >= 0, s350 <= z', s158 >= 0, s158 <= 0 + 1, s13 >= 0, s13 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 addLists(z, z', z'') -{ 13 + x' + z'' }-> if(2, 2, s2, s303, s304, 1 + p(0) + s305, 1 + s147 + s306, z'', s868) :|: s868 >= 0, s868 <= z'' + x'' + 1, s303 >= 0, s303 <= z, s304 >= 0, s304 <= z', s305 >= 0, s305 <= z, s306 >= 0, s306 <= z', s147 >= 0, s147 <= x' + 1, s2 >= 0, s2 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(2, 2, s3, s307, s308, 1 + p(0) + s309, 1 + s148 + s310, z'', s869) :|: s869 >= 0, s869 <= z'' + 0 + 1, s307 >= 0, s307 <= z, s308 >= 0, s308 <= z', s309 >= 0, s309 <= z, s310 >= 0, s310 <= z', s148 >= 0, s148 <= x' + 1, s3 >= 0, s3 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 2, s4, s311, s312, 1 + p(0) + s313, 1 + s149 + s314, z'', s870) :|: s870 >= 0, s870 <= z'' + x' + 1, s311 >= 0, s311 <= z, s312 >= 0, s312 <= z', s313 >= 0, s313 <= z, s314 >= 0, s314 <= z', s149 >= 0, s149 <= 0 + 1, s4 >= 0, s4 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 2, s5, s315, s316, 1 + p(0) + s317, 1 + s150 + s318, z'', s871) :|: s871 >= 0, s871 <= z'' + 0 + 1, s315 >= 0, s315 <= z, s316 >= 0, s316 <= z', s317 >= 0, s317 <= z, s318 >= 0, s318 <= z', s150 >= 0, s150 <= 0 + 1, s5 >= 0, s5 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 13 + x' + z'' }-> if(2, 2, s6, s319, s320, 1 + p(x) + s321, 1 + s151 + s322, z'', s872) :|: s872 >= 0, s872 <= z'' + x'' + 1, s319 >= 0, s319 <= z, s320 >= 0, s320 <= z', s321 >= 0, s321 <= z, s322 >= 0, s322 <= z', s151 >= 0, s151 <= x' + 1, s6 >= 0, s6 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(2, 2, s7, s323, s324, 1 + p(x) + s325, 1 + s152 + s326, z'', s873) :|: s873 >= 0, s873 <= z'' + 0 + 1, s323 >= 0, s323 <= z, s324 >= 0, s324 <= z', s325 >= 0, s325 <= z, s326 >= 0, s326 <= z', s152 >= 0, s152 <= x' + 1, s7 >= 0, s7 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 2, s8, s327, s328, 1 + p(x) + s329, 1 + s153 + s330, z'', s874) :|: s874 >= 0, s874 <= z'' + x' + 1, s327 >= 0, s327 <= z, s328 >= 0, s328 <= z', s329 >= 0, s329 <= z, s330 >= 0, s330 <= z', s153 >= 0, s153 <= 0 + 1, s8 >= 0, s8 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 2, s9, s331, s332, 1 + p(x) + s333, 1 + s154 + s334, z'', s875) :|: s875 >= 0, s875 <= z'' + 0 + 1, s331 >= 0, s331 <= z, s332 >= 0, s332 <= z', s333 >= 0, s333 <= z, s334 >= 0, s334 <= z', s154 >= 0, s154 <= 0 + 1, s9 >= 0, s9 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 14 + x1 + z'' }-> if(2, 1, s30, s415, s416, 1 + p(x'') + s417, 1 + s175 + s418, z'', s896) :|: s896 >= 0, s896 <= z'' + x2 + 1, s415 >= 0, s415 <= z, s416 >= 0, s416 <= z', s417 >= 0, s417 <= z, s418 >= 0, s418 <= z', s175 >= 0, s175 <= x1 + 1, s30 >= 0, s30 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 13 + x1 + z'' }-> if(2, 1, s31, s419, s420, 1 + p(x'') + s421, 1 + s176 + s422, z'', s897) :|: s897 >= 0, s897 <= z'' + 0 + 1, s419 >= 0, s419 <= z, s420 >= 0, s420 <= z', s421 >= 0, s421 <= z, s422 >= 0, s422 <= z', s176 >= 0, s176 <= x1 + 1, s31 >= 0, s31 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 13 + z'' }-> if(2, 1, s32, s423, s424, 1 + p(x'') + s425, 1 + s177 + s426, z'', s898) :|: s898 >= 0, s898 <= z'' + x1 + 1, s423 >= 0, s423 <= z, s424 >= 0, s424 <= z', s425 >= 0, s425 <= z, s426 >= 0, s426 <= z', s177 >= 0, s177 <= 0 + 1, s32 >= 0, s32 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 1, s33, s427, s428, 1 + p(x'') + s429, 1 + s178 + s430, z'', s899) :|: s899 >= 0, s899 <= z'' + 0 + 1, s427 >= 0, s427 <= z, s428 >= 0, s428 <= z', s429 >= 0, s429 <= z, s430 >= 0, s430 <= z', s178 >= 0, s178 <= 0 + 1, s33 >= 0, s33 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(2, 1, s34, s431, s432, 1 + p(0) + s433, 1 + s179 + s434, z'', s900) :|: s900 >= 0, s900 <= z'' + x1 + 1, s431 >= 0, s431 <= z, s432 >= 0, s432 <= z', s433 >= 0, s433 <= z, s434 >= 0, s434 <= z', s179 >= 0, s179 <= x'' + 1, s34 >= 0, s34 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(2, 1, s35, s435, s436, 1 + p(0) + s437, 1 + s180 + s438, z'', s901) :|: s901 >= 0, s901 <= z'' + 0 + 1, s435 >= 0, s435 <= z, s436 >= 0, s436 <= z', s437 >= 0, s437 <= z, s438 >= 0, s438 <= z', s180 >= 0, s180 <= x'' + 1, s35 >= 0, s35 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 1, s36, s439, s440, 1 + p(0) + s441, 1 + s181 + s442, z'', s902) :|: s902 >= 0, s902 <= z'' + x'' + 1, s439 >= 0, s439 <= z, s440 >= 0, s440 <= z', s441 >= 0, s441 <= z, s442 >= 0, s442 <= z', s181 >= 0, s181 <= 0 + 1, s36 >= 0, s36 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 1, s37, s443, s444, 1 + p(0) + s445, 1 + s182 + s446, z'', s903) :|: s903 >= 0, s903 <= z'' + 0 + 1, s443 >= 0, s443 <= z, s444 >= 0, s444 <= z', s445 >= 0, s445 <= z, s446 >= 0, s446 <= z', s182 >= 0, s182 <= 0 + 1, s37 >= 0, s37 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(2, 1, s38, s447, s448, 1 + p(x') + s449, 1 + s183 + s450, z'', s904) :|: s904 >= 0, s904 <= z'' + x1 + 1, s447 >= 0, s447 <= z, s448 >= 0, s448 <= z', s449 >= 0, s449 <= z, s450 >= 0, s450 <= z', s183 >= 0, s183 <= x'' + 1, s38 >= 0, s38 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(2, 1, s39, s451, s452, 1 + p(x') + s453, 1 + s184 + s454, z'', s905) :|: s905 >= 0, s905 <= z'' + 0 + 1, s451 >= 0, s451 <= z, s452 >= 0, s452 <= z', s453 >= 0, s453 <= z, s454 >= 0, s454 <= z', s184 >= 0, s184 <= x'' + 1, s39 >= 0, s39 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 1, s40, s455, s456, 1 + p(x') + s457, 1 + s185 + s458, z'', s906) :|: s906 >= 0, s906 <= z'' + x'' + 1, s455 >= 0, s455 <= z, s456 >= 0, s456 <= z', s457 >= 0, s457 <= z, s458 >= 0, s458 <= z', s185 >= 0, s185 <= 0 + 1, s40 >= 0, s40 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 1, s41, s459, s460, 1 + p(x') + s461, 1 + s186 + s462, z'', s907) :|: s907 >= 0, s907 <= z'' + 0 + 1, s459 >= 0, s459 <= z, s460 >= 0, s460 <= z', s461 >= 0, s461 <= z, s462 >= 0, s462 <= z', s186 >= 0, s186 <= 0 + 1, s41 >= 0, s41 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(2, 1, s42, s463, s464, 1 + p(0) + s465, 1 + s187 + s466, z'', s908) :|: s908 >= 0, s908 <= z'' + x'' + 1, s463 >= 0, s463 <= z, s464 >= 0, s464 <= z', s465 >= 0, s465 <= z, s466 >= 0, s466 <= z', s187 >= 0, s187 <= x' + 1, s42 >= 0, s42 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(2, 1, s43, s467, s468, 1 + p(0) + s469, 1 + s188 + s470, z'', s909) :|: s909 >= 0, s909 <= z'' + 0 + 1, s467 >= 0, s467 <= z, s468 >= 0, s468 <= z', s469 >= 0, s469 <= z, s470 >= 0, s470 <= z', s188 >= 0, s188 <= x' + 1, s43 >= 0, s43 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 1, s44, s471, s472, 1 + p(0) + s473, 1 + s189 + s474, z'', s910) :|: s910 >= 0, s910 <= z'' + x' + 1, s471 >= 0, s471 <= z, s472 >= 0, s472 <= z', s473 >= 0, s473 <= z, s474 >= 0, s474 <= z', s189 >= 0, s189 <= 0 + 1, s44 >= 0, s44 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(2, 1, s45, s475, s476, 1 + p(0) + s477, 1 + s190 + s478, z'', s911) :|: s911 >= 0, s911 <= z'' + 0 + 1, s475 >= 0, s475 <= z, s476 >= 0, s476 <= z', s477 >= 0, s477 <= z, s478 >= 0, s478 <= z', s190 >= 0, s190 <= 0 + 1, s45 >= 0, s45 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(2, 0, s14, s351, s352, 1 + p(x') + s353, 1 + s159 + s354, z'', s880) :|: s880 >= 0, s880 <= z'' + x1 + 1, s351 >= 0, s351 <= z, s352 >= 0, s352 <= z', s353 >= 0, s353 <= z, s354 >= 0, s354 <= z', s159 >= 0, s159 <= x'' + 1, s14 >= 0, s14 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(2, 0, s15, s355, s356, 1 + p(x') + s357, 1 + s160 + s358, z'', s881) :|: s881 >= 0, s881 <= z'' + 0 + 1, s355 >= 0, s355 <= z, s356 >= 0, s356 <= z', s357 >= 0, s357 <= z, s358 >= 0, s358 <= z', s160 >= 0, s160 <= x'' + 1, s15 >= 0, s15 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 0, s16, s359, s360, 1 + p(x') + s361, 1 + s161 + s362, z'', s882) :|: s882 >= 0, s882 <= z'' + x'' + 1, s359 >= 0, s359 <= z, s360 >= 0, s360 <= z', s361 >= 0, s361 <= z, s362 >= 0, s362 <= z', s161 >= 0, s161 <= 0 + 1, s16 >= 0, s16 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 0, s17, s363, s364, 1 + p(x') + s365, 1 + s162 + s366, z'', s883) :|: s883 >= 0, s883 <= z'' + 0 + 1, s363 >= 0, s363 <= z, s364 >= 0, s364 <= z', s365 >= 0, s365 <= z, s366 >= 0, s366 <= z', s162 >= 0, s162 <= 0 + 1, s17 >= 0, s17 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(2, 0, s18, s367, s368, 1 + p(0) + s369, 1 + s163 + s370, z'', s884) :|: s884 >= 0, s884 <= z'' + x'' + 1, s367 >= 0, s367 <= z, s368 >= 0, s368 <= z', s369 >= 0, s369 <= z, s370 >= 0, s370 <= z', s163 >= 0, s163 <= x' + 1, s18 >= 0, s18 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(2, 0, s19, s371, s372, 1 + p(0) + s373, 1 + s164 + s374, z'', s885) :|: s885 >= 0, s885 <= z'' + 0 + 1, s371 >= 0, s371 <= z, s372 >= 0, s372 <= z', s373 >= 0, s373 <= z, s374 >= 0, s374 <= z', s164 >= 0, s164 <= x' + 1, s19 >= 0, s19 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 0, s20, s375, s376, 1 + p(0) + s377, 1 + s165 + s378, z'', s886) :|: s886 >= 0, s886 <= z'' + x' + 1, s375 >= 0, s375 <= z, s376 >= 0, s376 <= z', s377 >= 0, s377 <= z, s378 >= 0, s378 <= z', s165 >= 0, s165 <= 0 + 1, s20 >= 0, s20 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(2, 0, s21, s379, s380, 1 + p(0) + s381, 1 + s166 + s382, z'', s887) :|: s887 >= 0, s887 <= z'' + 0 + 1, s379 >= 0, s379 <= z, s380 >= 0, s380 <= z', s381 >= 0, s381 <= z, s382 >= 0, s382 <= z', s166 >= 0, s166 <= 0 + 1, s21 >= 0, s21 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(2, 0, s22, s383, s384, 1 + p(x) + s385, 1 + s167 + s386, z'', s888) :|: s888 >= 0, s888 <= z'' + x'' + 1, s383 >= 0, s383 <= z, s384 >= 0, s384 <= z', s385 >= 0, s385 <= z, s386 >= 0, s386 <= z', s167 >= 0, s167 <= x' + 1, s22 >= 0, s22 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(2, 0, s23, s387, s388, 1 + p(x) + s389, 1 + s168 + s390, z'', s889) :|: s889 >= 0, s889 <= z'' + 0 + 1, s387 >= 0, s387 <= z, s388 >= 0, s388 <= z', s389 >= 0, s389 <= z, s390 >= 0, s390 <= z', s168 >= 0, s168 <= x' + 1, s23 >= 0, s23 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 0, s24, s391, s392, 1 + p(x) + s393, 1 + s169 + s394, z'', s890) :|: s890 >= 0, s890 <= z'' + x' + 1, s391 >= 0, s391 <= z, s392 >= 0, s392 <= z', s393 >= 0, s393 <= z, s394 >= 0, s394 <= z', s169 >= 0, s169 <= 0 + 1, s24 >= 0, s24 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(2, 0, s25, s395, s396, 1 + p(x) + s397, 1 + s170 + s398, z'', s891) :|: s891 >= 0, s891 <= z'' + 0 + 1, s395 >= 0, s395 <= z, s396 >= 0, s396 <= z', s397 >= 0, s397 <= z, s398 >= 0, s398 <= z', s170 >= 0, s170 <= 0 + 1, s25 >= 0, s25 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 11 + x + z'' }-> if(2, 0, s26, s399, s400, 1 + p(0) + s401, 1 + s171 + s402, z'', s892) :|: s892 >= 0, s892 <= z'' + x' + 1, s399 >= 0, s399 <= z, s400 >= 0, s400 <= z', s401 >= 0, s401 <= z, s402 >= 0, s402 <= z', s171 >= 0, s171 <= x + 1, s26 >= 0, s26 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + x + z'' }-> if(2, 0, s27, s403, s404, 1 + p(0) + s405, 1 + s172 + s406, z'', s893) :|: s893 >= 0, s893 <= z'' + 0 + 1, s403 >= 0, s403 <= z, s404 >= 0, s404 <= z', s405 >= 0, s405 <= z, s406 >= 0, s406 <= z', s172 >= 0, s172 <= x + 1, s27 >= 0, s27 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(2, 0, s28, s407, s408, 1 + p(0) + s409, 1 + s173 + s410, z'', s894) :|: s894 >= 0, s894 <= z'' + x + 1, s407 >= 0, s407 <= z, s408 >= 0, s408 <= z', s409 >= 0, s409 <= z, s410 >= 0, s410 <= z', s173 >= 0, s173 <= 0 + 1, s28 >= 0, s28 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(2, 0, s29, s411, s412, 1 + p(0) + s413, 1 + s174 + s414, z'', s895) :|: s895 >= 0, s895 <= z'' + 0 + 1, s411 >= 0, s411 <= z, s412 >= 0, s412 <= z', s413 >= 0, s413 <= z, s414 >= 0, s414 <= z', s174 >= 0, s174 <= 0 + 1, s29 >= 0, s29 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 2, s100, s695, s696, 1 + p(0) + s697, 1 + s245 + s698, z'', s966) :|: s966 >= 0, s966 <= z'' + x'' + 1, s695 >= 0, s695 <= z, s696 >= 0, s696 <= z', s697 >= 0, s697 <= z, s698 >= 0, s698 <= z', s245 >= 0, s245 <= 0 + 1, s100 >= 0, s100 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 2, s101, s699, s700, 1 + p(0) + s701, 1 + s246 + s702, z'', s967) :|: s967 >= 0, s967 <= z'' + 0 + 1, s699 >= 0, s699 <= z, s700 >= 0, s700 <= z', s701 >= 0, s701 <= z, s702 >= 0, s702 <= z', s246 >= 0, s246 <= 0 + 1, s101 >= 0, s101 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(1, 2, s102, s703, s704, 1 + p(x') + s705, 1 + s247 + s706, z'', s968) :|: s968 >= 0, s968 <= z'' + x1 + 1, s703 >= 0, s703 <= z, s704 >= 0, s704 <= z', s705 >= 0, s705 <= z, s706 >= 0, s706 <= z', s247 >= 0, s247 <= x'' + 1, s102 >= 0, s102 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(1, 2, s103, s707, s708, 1 + p(x') + s709, 1 + s248 + s710, z'', s969) :|: s969 >= 0, s969 <= z'' + 0 + 1, s707 >= 0, s707 <= z, s708 >= 0, s708 <= z', s709 >= 0, s709 <= z, s710 >= 0, s710 <= z', s248 >= 0, s248 <= x'' + 1, s103 >= 0, s103 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 2, s104, s711, s712, 1 + p(x') + s713, 1 + s249 + s714, z'', s970) :|: s970 >= 0, s970 <= z'' + x'' + 1, s711 >= 0, s711 <= z, s712 >= 0, s712 <= z', s713 >= 0, s713 <= z, s714 >= 0, s714 <= z', s249 >= 0, s249 <= 0 + 1, s104 >= 0, s104 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 2, s105, s715, s716, 1 + p(x') + s717, 1 + s250 + s718, z'', s971) :|: s971 >= 0, s971 <= z'' + 0 + 1, s715 >= 0, s715 <= z, s716 >= 0, s716 <= z', s717 >= 0, s717 <= z, s718 >= 0, s718 <= z', s250 >= 0, s250 <= 0 + 1, s105 >= 0, s105 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(1, 2, s106, s719, s720, 1 + p(0) + s721, 1 + s251 + s722, z'', s972) :|: s972 >= 0, s972 <= z'' + x'' + 1, s719 >= 0, s719 <= z, s720 >= 0, s720 <= z', s721 >= 0, s721 <= z, s722 >= 0, s722 <= z', s251 >= 0, s251 <= x' + 1, s106 >= 0, s106 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(1, 2, s107, s723, s724, 1 + p(0) + s725, 1 + s252 + s726, z'', s973) :|: s973 >= 0, s973 <= z'' + 0 + 1, s723 >= 0, s723 <= z, s724 >= 0, s724 <= z', s725 >= 0, s725 <= z, s726 >= 0, s726 <= z', s252 >= 0, s252 <= x' + 1, s107 >= 0, s107 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 2, s108, s727, s728, 1 + p(0) + s729, 1 + s253 + s730, z'', s974) :|: s974 >= 0, s974 <= z'' + x' + 1, s727 >= 0, s727 <= z, s728 >= 0, s728 <= z', s729 >= 0, s729 <= z, s730 >= 0, s730 <= z', s253 >= 0, s253 <= 0 + 1, s108 >= 0, s108 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(1, 2, s109, s731, s732, 1 + p(0) + s733, 1 + s254 + s734, z'', s975) :|: s975 >= 0, s975 <= z'' + 0 + 1, s731 >= 0, s731 <= z, s732 >= 0, s732 <= z', s733 >= 0, s733 <= z, s734 >= 0, s734 <= z', s254 >= 0, s254 <= 0 + 1, s109 >= 0, s109 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 addLists(z, z', z'') -{ 14 + x1 + z'' }-> if(1, 2, s94, s671, s672, 1 + p(x'') + s673, 1 + s239 + s674, z'', s960) :|: s960 >= 0, s960 <= z'' + x2 + 1, s671 >= 0, s671 <= z, s672 >= 0, s672 <= z', s673 >= 0, s673 <= z, s674 >= 0, s674 <= z', s239 >= 0, s239 <= x1 + 1, s94 >= 0, s94 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 13 + x1 + z'' }-> if(1, 2, s95, s675, s676, 1 + p(x'') + s677, 1 + s240 + s678, z'', s961) :|: s961 >= 0, s961 <= z'' + 0 + 1, s675 >= 0, s675 <= z, s676 >= 0, s676 <= z', s677 >= 0, s677 <= z, s678 >= 0, s678 <= z', s240 >= 0, s240 <= x1 + 1, s95 >= 0, s95 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 13 + z'' }-> if(1, 2, s96, s679, s680, 1 + p(x'') + s681, 1 + s241 + s682, z'', s962) :|: s962 >= 0, s962 <= z'' + x1 + 1, s679 >= 0, s679 <= z, s680 >= 0, s680 <= z', s681 >= 0, s681 <= z, s682 >= 0, s682 <= z', s241 >= 0, s241 <= 0 + 1, s96 >= 0, s96 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 2, s97, s683, s684, 1 + p(x'') + s685, 1 + s242 + s686, z'', s963) :|: s963 >= 0, s963 <= z'' + 0 + 1, s683 >= 0, s683 <= z, s684 >= 0, s684 <= z', s685 >= 0, s685 <= z, s686 >= 0, s686 <= z', s242 >= 0, s242 <= 0 + 1, s97 >= 0, s97 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(1, 2, s98, s687, s688, 1 + p(0) + s689, 1 + s243 + s690, z'', s964) :|: s964 >= 0, s964 <= z'' + x1 + 1, s687 >= 0, s687 <= z, s688 >= 0, s688 <= z', s689 >= 0, s689 <= z, s690 >= 0, s690 <= z', s243 >= 0, s243 <= x'' + 1, s98 >= 0, s98 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(1, 2, s99, s691, s692, 1 + p(0) + s693, 1 + s244 + s694, z'', s965) :|: s965 >= 0, s965 <= z'' + 0 + 1, s691 >= 0, s691 <= z, s692 >= 0, s692 <= z', s693 >= 0, s693 <= z, s694 >= 0, s694 <= z', s244 >= 0, s244 <= x'' + 1, s99 >= 0, s99 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 14 + x2 + z'' }-> if(1, 1, s126, s799, s800, 1 + p(x1) + s801, 1 + s271 + s802, z'', s992) :|: s992 >= 0, s992 <= z'' + x3 + 1, s799 >= 0, s799 <= z, s800 >= 0, s800 <= z', s801 >= 0, s801 <= z, s802 >= 0, s802 <= z', s271 >= 0, s271 <= x2 + 1, s126 >= 0, s126 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0, z' = 1 + x3 + xs4, xs4 >= 0, x3 >= 0 addLists(z, z', z'') -{ 13 + x2 + z'' }-> if(1, 1, s127, s803, s804, 1 + p(x1) + s805, 1 + s272 + s806, z'', s993) :|: s993 >= 0, s993 <= z'' + 0 + 1, s803 >= 0, s803 <= z, s804 >= 0, s804 <= z', s805 >= 0, s805 <= z, s806 >= 0, s806 <= z', s272 >= 0, s272 <= x2 + 1, s127 >= 0, s127 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 13 + z'' }-> if(1, 1, s128, s807, s808, 1 + p(x1) + s809, 1 + s273 + s810, z'', s994) :|: s994 >= 0, s994 <= z'' + x2 + 1, s807 >= 0, s807 <= z, s808 >= 0, s808 <= z', s809 >= 0, s809 <= z, s810 >= 0, s810 <= z', s273 >= 0, s273 <= 0 + 1, s128 >= 0, s128 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 1, s129, s811, s812, 1 + p(x1) + s813, 1 + s274 + s814, z'', s995) :|: s995 >= 0, s995 <= z'' + 0 + 1, s811 >= 0, s811 <= z, s812 >= 0, s812 <= z', s813 >= 0, s813 <= z, s814 >= 0, s814 <= z', s274 >= 0, s274 <= 0 + 1, s129 >= 0, s129 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 13 + x1 + z'' }-> if(1, 1, s130, s815, s816, 1 + p(0) + s817, 1 + s275 + s818, z'', s996) :|: s996 >= 0, s996 <= z'' + x2 + 1, s815 >= 0, s815 <= z, s816 >= 0, s816 <= z', s817 >= 0, s817 <= z, s818 >= 0, s818 <= z', s275 >= 0, s275 <= x1 + 1, s130 >= 0, s130 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 + x1 + z'' }-> if(1, 1, s131, s819, s820, 1 + p(0) + s821, 1 + s276 + s822, z'', s997) :|: s997 >= 0, s997 <= z'' + 0 + 1, s819 >= 0, s819 <= z, s820 >= 0, s820 <= z', s821 >= 0, s821 <= z, s822 >= 0, s822 <= z', s276 >= 0, s276 <= x1 + 1, s131 >= 0, s131 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 1, s132, s823, s824, 1 + p(0) + s825, 1 + s277 + s826, z'', s998) :|: s998 >= 0, s998 <= z'' + x1 + 1, s823 >= 0, s823 <= z, s824 >= 0, s824 <= z', s825 >= 0, s825 <= z, s826 >= 0, s826 <= z', s277 >= 0, s277 <= 0 + 1, s132 >= 0, s132 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 1, s133, s827, s828, 1 + p(0) + s829, 1 + s278 + s830, z'', s999) :|: s999 >= 0, s999 <= z'' + 0 + 1, s827 >= 0, s827 <= z, s828 >= 0, s828 <= z', s829 >= 0, s829 <= z, s830 >= 0, s830 <= z', s278 >= 0, s278 <= 0 + 1, s133 >= 0, s133 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + x1 + z'' }-> if(1, 1, s134, s831, s832, 1 + p(x'') + s833, 1 + s279 + s834, z'', s1000) :|: s1000 >= 0, s1000 <= z'' + x2 + 1, s831 >= 0, s831 <= z, s832 >= 0, s832 <= z', s833 >= 0, s833 <= z, s834 >= 0, s834 <= z', s279 >= 0, s279 <= x1 + 1, s134 >= 0, s134 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 + x1 + z'' }-> if(1, 1, s135, s835, s836, 1 + p(x'') + s837, 1 + s280 + s838, z'', s1001) :|: s1001 >= 0, s1001 <= z'' + 0 + 1, s835 >= 0, s835 <= z, s836 >= 0, s836 <= z', s837 >= 0, s837 <= z, s838 >= 0, s838 <= z', s280 >= 0, s280 <= x1 + 1, s135 >= 0, s135 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 1, s136, s839, s840, 1 + p(x'') + s841, 1 + s281 + s842, z'', s1002) :|: s1002 >= 0, s1002 <= z'' + x1 + 1, s839 >= 0, s839 <= z, s840 >= 0, s840 <= z', s841 >= 0, s841 <= z, s842 >= 0, s842 <= z', s281 >= 0, s281 <= 0 + 1, s136 >= 0, s136 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 1, s137, s843, s844, 1 + p(x'') + s845, 1 + s282 + s846, z'', s1003) :|: s1003 >= 0, s1003 <= z'' + 0 + 1, s843 >= 0, s843 <= z, s844 >= 0, s844 <= z', s845 >= 0, s845 <= z, s846 >= 0, s846 <= z', s282 >= 0, s282 <= 0 + 1, s137 >= 0, s137 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(1, 1, s138, s847, s848, 1 + p(0) + s849, 1 + s283 + s850, z'', s1004) :|: s1004 >= 0, s1004 <= z'' + x1 + 1, s847 >= 0, s847 <= z, s848 >= 0, s848 <= z', s849 >= 0, s849 <= z, s850 >= 0, s850 <= z', s283 >= 0, s283 <= x'' + 1, s138 >= 0, s138 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' + z'' }-> if(1, 1, s139, s851, s852, 1 + p(0) + s853, 1 + s284 + s854, z'', s1005) :|: s1005 >= 0, s1005 <= z'' + 0 + 1, s851 >= 0, s851 <= z, s852 >= 0, s852 <= z', s853 >= 0, s853 <= z, s854 >= 0, s854 <= z', s284 >= 0, s284 <= x'' + 1, s139 >= 0, s139 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 1, s140, s855, s856, 1 + p(0) + s857, 1 + s285 + s858, z'', s1006) :|: s1006 >= 0, s1006 <= z'' + x'' + 1, s855 >= 0, s855 <= z, s856 >= 0, s856 <= z', s857 >= 0, s857 <= z, s858 >= 0, s858 <= z', s285 >= 0, s285 <= 0 + 1, s140 >= 0, s140 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(1, 1, s141, s859, s860, 1 + p(0) + s861, 1 + s286 + s862, z'', s1007) :|: s1007 >= 0, s1007 <= z'' + 0 + 1, s859 >= 0, s859 <= z, s860 >= 0, s860 <= z', s861 >= 0, s861 <= z, s862 >= 0, s862 <= z', s286 >= 0, s286 <= 0 + 1, s141 >= 0, s141 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 13 + x1 + z'' }-> if(1, 0, s110, s735, s736, 1 + p(x'') + s737, 1 + s255 + s738, z'', s976) :|: s976 >= 0, s976 <= z'' + x2 + 1, s735 >= 0, s735 <= z, s736 >= 0, s736 <= z', s737 >= 0, s737 <= z, s738 >= 0, s738 <= z', s255 >= 0, s255 <= x1 + 1, s110 >= 0, s110 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 + x1 + z'' }-> if(1, 0, s111, s739, s740, 1 + p(x'') + s741, 1 + s256 + s742, z'', s977) :|: s977 >= 0, s977 <= z'' + 0 + 1, s739 >= 0, s739 <= z, s740 >= 0, s740 <= z', s741 >= 0, s741 <= z, s742 >= 0, s742 <= z', s256 >= 0, s256 <= x1 + 1, s111 >= 0, s111 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 0, s112, s743, s744, 1 + p(x'') + s745, 1 + s257 + s746, z'', s978) :|: s978 >= 0, s978 <= z'' + x1 + 1, s743 >= 0, s743 <= z, s744 >= 0, s744 <= z', s745 >= 0, s745 <= z, s746 >= 0, s746 <= z', s257 >= 0, s257 <= 0 + 1, s112 >= 0, s112 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 0, s113, s747, s748, 1 + p(x'') + s749, 1 + s258 + s750, z'', s979) :|: s979 >= 0, s979 <= z'' + 0 + 1, s747 >= 0, s747 <= z, s748 >= 0, s748 <= z', s749 >= 0, s749 <= z, s750 >= 0, s750 <= z', s258 >= 0, s258 <= 0 + 1, s113 >= 0, s113 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(1, 0, s114, s751, s752, 1 + p(0) + s753, 1 + s259 + s754, z'', s980) :|: s980 >= 0, s980 <= z'' + x1 + 1, s751 >= 0, s751 <= z, s752 >= 0, s752 <= z', s753 >= 0, s753 <= z, s754 >= 0, s754 <= z', s259 >= 0, s259 <= x'' + 1, s114 >= 0, s114 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' + z'' }-> if(1, 0, s115, s755, s756, 1 + p(0) + s757, 1 + s260 + s758, z'', s981) :|: s981 >= 0, s981 <= z'' + 0 + 1, s755 >= 0, s755 <= z, s756 >= 0, s756 <= z', s757 >= 0, s757 <= z, s758 >= 0, s758 <= z', s260 >= 0, s260 <= x'' + 1, s115 >= 0, s115 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 0, s116, s759, s760, 1 + p(0) + s761, 1 + s261 + s762, z'', s982) :|: s982 >= 0, s982 <= z'' + x'' + 1, s759 >= 0, s759 <= z, s760 >= 0, s760 <= z', s761 >= 0, s761 <= z, s762 >= 0, s762 <= z', s261 >= 0, s261 <= 0 + 1, s116 >= 0, s116 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(1, 0, s117, s763, s764, 1 + p(0) + s765, 1 + s262 + s766, z'', s983) :|: s983 >= 0, s983 <= z'' + 0 + 1, s763 >= 0, s763 <= z, s764 >= 0, s764 <= z', s765 >= 0, s765 <= z, s766 >= 0, s766 <= z', s262 >= 0, s262 <= 0 + 1, s117 >= 0, s117 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(1, 0, s118, s767, s768, 1 + p(x') + s769, 1 + s263 + s770, z'', s984) :|: s984 >= 0, s984 <= z'' + x1 + 1, s767 >= 0, s767 <= z, s768 >= 0, s768 <= z', s769 >= 0, s769 <= z, s770 >= 0, s770 <= z', s263 >= 0, s263 <= x'' + 1, s118 >= 0, s118 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' + z'' }-> if(1, 0, s119, s771, s772, 1 + p(x') + s773, 1 + s264 + s774, z'', s985) :|: s985 >= 0, s985 <= z'' + 0 + 1, s771 >= 0, s771 <= z, s772 >= 0, s772 <= z', s773 >= 0, s773 <= z, s774 >= 0, s774 <= z', s264 >= 0, s264 <= x'' + 1, s119 >= 0, s119 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 0, s120, s775, s776, 1 + p(x') + s777, 1 + s265 + s778, z'', s986) :|: s986 >= 0, s986 <= z'' + x'' + 1, s775 >= 0, s775 <= z, s776 >= 0, s776 <= z', s777 >= 0, s777 <= z, s778 >= 0, s778 <= z', s265 >= 0, s265 <= 0 + 1, s120 >= 0, s120 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(1, 0, s121, s779, s780, 1 + p(x') + s781, 1 + s266 + s782, z'', s987) :|: s987 >= 0, s987 <= z'' + 0 + 1, s779 >= 0, s779 <= z, s780 >= 0, s780 <= z', s781 >= 0, s781 <= z, s782 >= 0, s782 <= z', s266 >= 0, s266 <= 0 + 1, s121 >= 0, s121 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(1, 0, s122, s783, s784, 1 + p(0) + s785, 1 + s267 + s786, z'', s988) :|: s988 >= 0, s988 <= z'' + x'' + 1, s783 >= 0, s783 <= z, s784 >= 0, s784 <= z', s785 >= 0, s785 <= z, s786 >= 0, s786 <= z', s267 >= 0, s267 <= x' + 1, s122 >= 0, s122 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' + z'' }-> if(1, 0, s123, s787, s788, 1 + p(0) + s789, 1 + s268 + s790, z'', s989) :|: s989 >= 0, s989 <= z'' + 0 + 1, s787 >= 0, s787 <= z, s788 >= 0, s788 <= z', s789 >= 0, s789 <= z, s790 >= 0, s790 <= z', s268 >= 0, s268 <= x' + 1, s123 >= 0, s123 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(1, 0, s124, s791, s792, 1 + p(0) + s793, 1 + s269 + s794, z'', s990) :|: s990 >= 0, s990 <= z'' + x' + 1, s791 >= 0, s791 <= z, s792 >= 0, s792 <= z', s793 >= 0, s793 <= z, s794 >= 0, s794 <= z', s269 >= 0, s269 <= 0 + 1, s124 >= 0, s124 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(1, 0, s125, s795, s796, 1 + p(0) + s797, 1 + s270 + s798, z'', s991) :|: s991 >= 0, s991 <= z'' + 0 + 1, s795 >= 0, s795 <= z, s796 >= 0, s796 <= z', s797 >= 0, s797 <= z, s798 >= 0, s798 <= z', s270 >= 0, s270 <= 0 + 1, s125 >= 0, s125 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(0, 2, s46, s479, s480, 1 + p(x') + s481, 1 + s191 + s482, z'', s912) :|: s912 >= 0, s912 <= z'' + x1 + 1, s479 >= 0, s479 <= z, s480 >= 0, s480 <= z', s481 >= 0, s481 <= z, s482 >= 0, s482 <= z', s191 >= 0, s191 <= x'' + 1, s46 >= 0, s46 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(0, 2, s47, s483, s484, 1 + p(x') + s485, 1 + s192 + s486, z'', s913) :|: s913 >= 0, s913 <= z'' + 0 + 1, s483 >= 0, s483 <= z, s484 >= 0, s484 <= z', s485 >= 0, s485 <= z, s486 >= 0, s486 <= z', s192 >= 0, s192 <= x'' + 1, s47 >= 0, s47 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(0, 2, s48, s487, s488, 1 + p(x') + s489, 1 + s193 + s490, z'', s914) :|: s914 >= 0, s914 <= z'' + x'' + 1, s487 >= 0, s487 <= z, s488 >= 0, s488 <= z', s489 >= 0, s489 <= z, s490 >= 0, s490 <= z', s193 >= 0, s193 <= 0 + 1, s48 >= 0, s48 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 2, s49, s491, s492, 1 + p(x') + s493, 1 + s194 + s494, z'', s915) :|: s915 >= 0, s915 <= z'' + 0 + 1, s491 >= 0, s491 <= z, s492 >= 0, s492 <= z', s493 >= 0, s493 <= z, s494 >= 0, s494 <= z', s194 >= 0, s194 <= 0 + 1, s49 >= 0, s49 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(0, 2, s50, s495, s496, 1 + p(0) + s497, 1 + s195 + s498, z'', s916) :|: s916 >= 0, s916 <= z'' + x'' + 1, s495 >= 0, s495 <= z, s496 >= 0, s496 <= z', s497 >= 0, s497 <= z, s498 >= 0, s498 <= z', s195 >= 0, s195 <= x' + 1, s50 >= 0, s50 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(0, 2, s51, s499, s500, 1 + p(0) + s501, 1 + s196 + s502, z'', s917) :|: s917 >= 0, s917 <= z'' + 0 + 1, s499 >= 0, s499 <= z, s500 >= 0, s500 <= z', s501 >= 0, s501 <= z, s502 >= 0, s502 <= z', s196 >= 0, s196 <= x' + 1, s51 >= 0, s51 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 2, s52, s503, s504, 1 + p(0) + s505, 1 + s197 + s506, z'', s918) :|: s918 >= 0, s918 <= z'' + x' + 1, s503 >= 0, s503 <= z, s504 >= 0, s504 <= z', s505 >= 0, s505 <= z, s506 >= 0, s506 <= z', s197 >= 0, s197 <= 0 + 1, s52 >= 0, s52 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 2, s53, s507, s508, 1 + p(0) + s509, 1 + s198 + s510, z'', s919) :|: s919 >= 0, s919 <= z'' + 0 + 1, s507 >= 0, s507 <= z, s508 >= 0, s508 <= z', s509 >= 0, s509 <= z, s510 >= 0, s510 <= z', s198 >= 0, s198 <= 0 + 1, s53 >= 0, s53 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(0, 2, s54, s511, s512, 1 + p(x) + s513, 1 + s199 + s514, z'', s920) :|: s920 >= 0, s920 <= z'' + x'' + 1, s511 >= 0, s511 <= z, s512 >= 0, s512 <= z', s513 >= 0, s513 <= z, s514 >= 0, s514 <= z', s199 >= 0, s199 <= x' + 1, s54 >= 0, s54 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(0, 2, s55, s515, s516, 1 + p(x) + s517, 1 + s200 + s518, z'', s921) :|: s921 >= 0, s921 <= z'' + 0 + 1, s515 >= 0, s515 <= z, s516 >= 0, s516 <= z', s517 >= 0, s517 <= z, s518 >= 0, s518 <= z', s200 >= 0, s200 <= x' + 1, s55 >= 0, s55 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 2, s56, s519, s520, 1 + p(x) + s521, 1 + s201 + s522, z'', s922) :|: s922 >= 0, s922 <= z'' + x' + 1, s519 >= 0, s519 <= z, s520 >= 0, s520 <= z', s521 >= 0, s521 <= z, s522 >= 0, s522 <= z', s201 >= 0, s201 <= 0 + 1, s56 >= 0, s56 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 2, s57, s523, s524, 1 + p(x) + s525, 1 + s202 + s526, z'', s923) :|: s923 >= 0, s923 <= z'' + 0 + 1, s523 >= 0, s523 <= z, s524 >= 0, s524 <= z', s525 >= 0, s525 <= z, s526 >= 0, s526 <= z', s202 >= 0, s202 <= 0 + 1, s57 >= 0, s57 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 11 + x + z'' }-> if(0, 2, s58, s527, s528, 1 + p(0) + s529, 1 + s203 + s530, z'', s924) :|: s924 >= 0, s924 <= z'' + x' + 1, s527 >= 0, s527 <= z, s528 >= 0, s528 <= z', s529 >= 0, s529 <= z, s530 >= 0, s530 <= z', s203 >= 0, s203 <= x + 1, s58 >= 0, s58 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + x + z'' }-> if(0, 2, s59, s531, s532, 1 + p(0) + s533, 1 + s204 + s534, z'', s925) :|: s925 >= 0, s925 <= z'' + 0 + 1, s531 >= 0, s531 <= z, s532 >= 0, s532 <= z', s533 >= 0, s533 <= z, s534 >= 0, s534 <= z', s204 >= 0, s204 <= x + 1, s59 >= 0, s59 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 2, s60, s535, s536, 1 + p(0) + s537, 1 + s205 + s538, z'', s926) :|: s926 >= 0, s926 <= z'' + x + 1, s535 >= 0, s535 <= z, s536 >= 0, s536 <= z', s537 >= 0, s537 <= z, s538 >= 0, s538 <= z', s205 >= 0, s205 <= 0 + 1, s60 >= 0, s60 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(0, 2, s61, s539, s540, 1 + p(0) + s541, 1 + s206 + s542, z'', s927) :|: s927 >= 0, s927 <= z'' + 0 + 1, s539 >= 0, s539 <= z, s540 >= 0, s540 <= z', s541 >= 0, s541 <= z, s542 >= 0, s542 <= z', s206 >= 0, s206 <= 0 + 1, s61 >= 0, s61 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 addLists(z, z', z'') -{ 13 + x1 + z'' }-> if(0, 1, s78, s607, s608, 1 + p(x'') + s609, 1 + s223 + s610, z'', s944) :|: s944 >= 0, s944 <= z'' + x2 + 1, s607 >= 0, s607 <= z, s608 >= 0, s608 <= z', s609 >= 0, s609 <= z, s610 >= 0, s610 <= z', s223 >= 0, s223 <= x1 + 1, s78 >= 0, s78 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 + x1 + z'' }-> if(0, 1, s79, s611, s612, 1 + p(x'') + s613, 1 + s224 + s614, z'', s945) :|: s945 >= 0, s945 <= z'' + 0 + 1, s611 >= 0, s611 <= z, s612 >= 0, s612 <= z', s613 >= 0, s613 <= z, s614 >= 0, s614 <= z', s224 >= 0, s224 <= x1 + 1, s79 >= 0, s79 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(0, 1, s80, s615, s616, 1 + p(x'') + s617, 1 + s225 + s618, z'', s946) :|: s946 >= 0, s946 <= z'' + x1 + 1, s615 >= 0, s615 <= z, s616 >= 0, s616 <= z', s617 >= 0, s617 <= z, s618 >= 0, s618 <= z', s225 >= 0, s225 <= 0 + 1, s80 >= 0, s80 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 1, s81, s619, s620, 1 + p(x'') + s621, 1 + s226 + s622, z'', s947) :|: s947 >= 0, s947 <= z'' + 0 + 1, s619 >= 0, s619 <= z, s620 >= 0, s620 <= z', s621 >= 0, s621 <= z, s622 >= 0, s622 <= z', s226 >= 0, s226 <= 0 + 1, s81 >= 0, s81 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(0, 1, s82, s623, s624, 1 + p(0) + s625, 1 + s227 + s626, z'', s948) :|: s948 >= 0, s948 <= z'' + x1 + 1, s623 >= 0, s623 <= z, s624 >= 0, s624 <= z', s625 >= 0, s625 <= z, s626 >= 0, s626 <= z', s227 >= 0, s227 <= x'' + 1, s82 >= 0, s82 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' + z'' }-> if(0, 1, s83, s627, s628, 1 + p(0) + s629, 1 + s228 + s630, z'', s949) :|: s949 >= 0, s949 <= z'' + 0 + 1, s627 >= 0, s627 <= z, s628 >= 0, s628 <= z', s629 >= 0, s629 <= z, s630 >= 0, s630 <= z', s228 >= 0, s228 <= x'' + 1, s83 >= 0, s83 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 1, s84, s631, s632, 1 + p(0) + s633, 1 + s229 + s634, z'', s950) :|: s950 >= 0, s950 <= z'' + x'' + 1, s631 >= 0, s631 <= z, s632 >= 0, s632 <= z', s633 >= 0, s633 <= z, s634 >= 0, s634 <= z', s229 >= 0, s229 <= 0 + 1, s84 >= 0, s84 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 1, s85, s635, s636, 1 + p(0) + s637, 1 + s230 + s638, z'', s951) :|: s951 >= 0, s951 <= z'' + 0 + 1, s635 >= 0, s635 <= z, s636 >= 0, s636 <= z', s637 >= 0, s637 <= z, s638 >= 0, s638 <= z', s230 >= 0, s230 <= 0 + 1, s85 >= 0, s85 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(0, 1, s86, s639, s640, 1 + p(x') + s641, 1 + s231 + s642, z'', s952) :|: s952 >= 0, s952 <= z'' + x1 + 1, s639 >= 0, s639 <= z, s640 >= 0, s640 <= z', s641 >= 0, s641 <= z, s642 >= 0, s642 <= z', s231 >= 0, s231 <= x'' + 1, s86 >= 0, s86 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' + z'' }-> if(0, 1, s87, s643, s644, 1 + p(x') + s645, 1 + s232 + s646, z'', s953) :|: s953 >= 0, s953 <= z'' + 0 + 1, s643 >= 0, s643 <= z, s644 >= 0, s644 <= z', s645 >= 0, s645 <= z, s646 >= 0, s646 <= z', s232 >= 0, s232 <= x'' + 1, s87 >= 0, s87 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 1, s88, s647, s648, 1 + p(x') + s649, 1 + s233 + s650, z'', s954) :|: s954 >= 0, s954 <= z'' + x'' + 1, s647 >= 0, s647 <= z, s648 >= 0, s648 <= z', s649 >= 0, s649 <= z, s650 >= 0, s650 <= z', s233 >= 0, s233 <= 0 + 1, s88 >= 0, s88 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 1, s89, s651, s652, 1 + p(x') + s653, 1 + s234 + s654, z'', s955) :|: s955 >= 0, s955 <= z'' + 0 + 1, s651 >= 0, s651 <= z, s652 >= 0, s652 <= z', s653 >= 0, s653 <= z, s654 >= 0, s654 <= z', s234 >= 0, s234 <= 0 + 1, s89 >= 0, s89 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(0, 1, s90, s655, s656, 1 + p(0) + s657, 1 + s235 + s658, z'', s956) :|: s956 >= 0, s956 <= z'' + x'' + 1, s655 >= 0, s655 <= z, s656 >= 0, s656 <= z', s657 >= 0, s657 <= z, s658 >= 0, s658 <= z', s235 >= 0, s235 <= x' + 1, s90 >= 0, s90 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' + z'' }-> if(0, 1, s91, s659, s660, 1 + p(0) + s661, 1 + s236 + s662, z'', s957) :|: s957 >= 0, s957 <= z'' + 0 + 1, s659 >= 0, s659 <= z, s660 >= 0, s660 <= z', s661 >= 0, s661 <= z, s662 >= 0, s662 <= z', s236 >= 0, s236 <= x' + 1, s91 >= 0, s91 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 1, s92, s663, s664, 1 + p(0) + s665, 1 + s237 + s666, z'', s958) :|: s958 >= 0, s958 <= z'' + x' + 1, s663 >= 0, s663 <= z, s664 >= 0, s664 <= z', s665 >= 0, s665 <= z, s666 >= 0, s666 <= z', s237 >= 0, s237 <= 0 + 1, s92 >= 0, s92 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(0, 1, s93, s667, s668, 1 + p(0) + s669, 1 + s238 + s670, z'', s959) :|: s959 >= 0, s959 <= z'' + 0 + 1, s667 >= 0, s667 <= z, s668 >= 0, s668 <= z', s669 >= 0, s669 <= z, s670 >= 0, s670 <= z', s238 >= 0, s238 <= 0 + 1, s93 >= 0, s93 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(0, 0, s62, s543, s544, 1 + p(x') + s545, 1 + s207 + s546, z'', s928) :|: s928 >= 0, s928 <= z'' + x1 + 1, s543 >= 0, s543 <= z, s544 >= 0, s544 <= z', s545 >= 0, s545 <= z, s546 >= 0, s546 <= z', s207 >= 0, s207 <= x'' + 1, s62 >= 0, s62 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' + z'' }-> if(0, 0, s63, s547, s548, 1 + p(x') + s549, 1 + s208 + s550, z'', s929) :|: s929 >= 0, s929 <= z'' + 0 + 1, s547 >= 0, s547 <= z, s548 >= 0, s548 <= z', s549 >= 0, s549 <= z, s550 >= 0, s550 <= z', s208 >= 0, s208 <= x'' + 1, s63 >= 0, s63 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 0, s64, s551, s552, 1 + p(x') + s553, 1 + s209 + s554, z'', s930) :|: s930 >= 0, s930 <= z'' + x'' + 1, s551 >= 0, s551 <= z, s552 >= 0, s552 <= z', s553 >= 0, s553 <= z, s554 >= 0, s554 <= z', s209 >= 0, s209 <= 0 + 1, s64 >= 0, s64 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 0, s65, s555, s556, 1 + p(x') + s557, 1 + s210 + s558, z'', s931) :|: s931 >= 0, s931 <= z'' + 0 + 1, s555 >= 0, s555 <= z, s556 >= 0, s556 <= z', s557 >= 0, s557 <= z, s558 >= 0, s558 <= z', s210 >= 0, s210 <= 0 + 1, s65 >= 0, s65 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(0, 0, s66, s559, s560, 1 + p(0) + s561, 1 + s211 + s562, z'', s932) :|: s932 >= 0, s932 <= z'' + x'' + 1, s559 >= 0, s559 <= z, s560 >= 0, s560 <= z', s561 >= 0, s561 <= z, s562 >= 0, s562 <= z', s211 >= 0, s211 <= x' + 1, s66 >= 0, s66 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' + z'' }-> if(0, 0, s67, s563, s564, 1 + p(0) + s565, 1 + s212 + s566, z'', s933) :|: s933 >= 0, s933 <= z'' + 0 + 1, s563 >= 0, s563 <= z, s564 >= 0, s564 <= z', s565 >= 0, s565 <= z, s566 >= 0, s566 <= z', s212 >= 0, s212 <= x' + 1, s67 >= 0, s67 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 0, s68, s567, s568, 1 + p(0) + s569, 1 + s213 + s570, z'', s934) :|: s934 >= 0, s934 <= z'' + x' + 1, s567 >= 0, s567 <= z, s568 >= 0, s568 <= z', s569 >= 0, s569 <= z, s570 >= 0, s570 <= z', s213 >= 0, s213 <= 0 + 1, s68 >= 0, s68 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(0, 0, s69, s571, s572, 1 + p(0) + s573, 1 + s214 + s574, z'', s935) :|: s935 >= 0, s935 <= z'' + 0 + 1, s571 >= 0, s571 <= z, s572 >= 0, s572 <= z', s573 >= 0, s573 <= z, s574 >= 0, s574 <= z', s214 >= 0, s214 <= 0 + 1, s69 >= 0, s69 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(0, 0, s70, s575, s576, 1 + p(x) + s577, 1 + s215 + s578, z'', s936) :|: s936 >= 0, s936 <= z'' + x'' + 1, s575 >= 0, s575 <= z, s576 >= 0, s576 <= z', s577 >= 0, s577 <= z, s578 >= 0, s578 <= z', s215 >= 0, s215 <= x' + 1, s70 >= 0, s70 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' + z'' }-> if(0, 0, s71, s579, s580, 1 + p(x) + s581, 1 + s216 + s582, z'', s937) :|: s937 >= 0, s937 <= z'' + 0 + 1, s579 >= 0, s579 <= z, s580 >= 0, s580 <= z', s581 >= 0, s581 <= z, s582 >= 0, s582 <= z', s216 >= 0, s216 <= x' + 1, s71 >= 0, s71 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 0, s72, s583, s584, 1 + p(x) + s585, 1 + s217 + s586, z'', s938) :|: s938 >= 0, s938 <= z'' + x' + 1, s583 >= 0, s583 <= z, s584 >= 0, s584 <= z', s585 >= 0, s585 <= z, s586 >= 0, s586 <= z', s217 >= 0, s217 <= 0 + 1, s72 >= 0, s72 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(0, 0, s73, s587, s588, 1 + p(x) + s589, 1 + s218 + s590, z'', s939) :|: s939 >= 0, s939 <= z'' + 0 + 1, s587 >= 0, s587 <= z, s588 >= 0, s588 <= z', s589 >= 0, s589 <= z, s590 >= 0, s590 <= z', s218 >= 0, s218 <= 0 + 1, s73 >= 0, s73 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 10 + x + z'' }-> if(0, 0, s74, s591, s592, 1 + p(0) + s593, 1 + s219 + s594, z'', s940) :|: s940 >= 0, s940 <= z'' + x' + 1, s591 >= 0, s591 <= z, s592 >= 0, s592 <= z', s593 >= 0, s593 <= z, s594 >= 0, s594 <= z', s219 >= 0, s219 <= x + 1, s74 >= 0, s74 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 + x + z'' }-> if(0, 0, s75, s595, s596, 1 + p(0) + s597, 1 + s220 + s598, z'', s941) :|: s941 >= 0, s941 <= z'' + 0 + 1, s595 >= 0, s595 <= z, s596 >= 0, s596 <= z', s597 >= 0, s597 <= z, s598 >= 0, s598 <= z', s220 >= 0, s220 <= x + 1, s75 >= 0, s75 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(0, 0, s76, s599, s600, 1 + p(0) + s601, 1 + s221 + s602, z'', s942) :|: s942 >= 0, s942 <= z'' + x + 1, s599 >= 0, s599 <= z, s600 >= 0, s600 <= z', s601 >= 0, s601 <= z, s602 >= 0, s602 <= z', s221 >= 0, s221 <= 0 + 1, s76 >= 0, s76 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 8 + z'' }-> if(0, 0, s77, s603, s604, 1 + p(0) + s605, 1 + s222 + s606, z'', s943) :|: s943 >= 0, s943 <= z'' + 0 + 1, s603 >= 0, s603 <= z, s604 >= 0, s604 <= z', s605 >= 0, s605 <= z, s606 >= 0, s606 <= z', s222 >= 0, s222 <= 0 + 1, s77 >= 0, s77 <= 2, z >= 0, z' >= 0, z'' >= 0 append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 append(z, z') -{ 2 + ys }-> 1 + y + s863 :|: s863 >= 0, s863 <= ys + z' + 1, ys >= 0, y >= 0, z' >= 0, z = 1 + y + ys append(z, z') -{ 1 }-> 1 + z' + 1 :|: z = 1, z' >= 0 head(z) -{ 1 }-> x :|: z = 1 + x + xs, xs >= 0, x >= 0 head(z) -{ 0 }-> 0 :|: z >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> z5 :|: z1 >= 0, z' = 2, z5 >= 0, z6 >= 0, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z1, z2, z6) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 2, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z3, z4, z5) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 1, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z5 >= 0, z6 >= 0, z' = 1, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z' = 2, z = 1, z5 >= 0, z6 >= 0, z4 >= 0, z'' >= 0, z3 >= 0, z2 >= 0 inc(z) -{ 1 + z }-> 1 + s142 :|: s142 >= 0, s142 <= z - 1 + 1, z - 1 >= 0 inc(z) -{ 1 }-> 1 + 0 :|: z = 0 isEmpty(z) -{ 1 }-> 2 :|: z = 1 isEmpty(z) -{ 1 }-> 1 :|: z = 1 + x + xs, xs >= 0, x >= 0 isEmpty(z) -{ 0 }-> 0 :|: z >= 0 isZero(z) -{ 1 }-> 2 :|: z = 0 isZero(z) -{ 1 }-> 1 :|: z - 1 >= 0 p(z) -{ 1 }-> 0 :|: z = 1 + 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 1 }-> 1 + p(1 + (z - 2)) :|: z - 2 >= 0 tail(z) -{ 1 }-> xs :|: z = 1 + x + xs, xs >= 0, x >= 0 tail(z) -{ 1 }-> 1 :|: z = 1 tail(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {p}, {addLists,if}, {addList} Previous analysis results are: isEmpty: runtime: O(1) [1], size: O(1) [2] isZero: runtime: O(1) [1], size: O(1) [2] inc: runtime: O(n^1) [1 + z], size: O(n^1) [1 + z] tail: runtime: O(1) [1], size: O(n^1) [z] append: runtime: O(n^1) [1 + z], size: O(n^1) [1 + z + z'] head: runtime: O(1) [1], size: O(n^1) [z] ---------------------------------------- (59) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using KoAT for: p after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: z ---------------------------------------- (60) Obligation: Complexity RNTS consisting of the following rules: addList(z, z') -{ 1 }-> addLists(z, z', 1) :|: z >= 0, z' >= 0 addLists(z, z', z'') -{ 14 + x'' + z'' }-> if(2, 2, s, s287, s288, 1 + p(x') + s289, 1 + s143 + s290, z'', s864) :|: s864 >= 0, s864 <= z'' + x1 + 1, s287 >= 0, s287 <= z, s288 >= 0, s288 <= z', s289 >= 0, s289 <= z, s290 >= 0, s290 <= z', s143 >= 0, s143 <= x'' + 1, s >= 0, s <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(2, 2, s', s291, s292, 1 + p(x') + s293, 1 + s144 + s294, z'', s865) :|: s865 >= 0, s865 <= z'' + 0 + 1, s291 >= 0, s291 <= z, s292 >= 0, s292 <= z', s293 >= 0, s293 <= z, s294 >= 0, s294 <= z', s144 >= 0, s144 <= x'' + 1, s' >= 0, s' <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + z'' }-> if(2, 2, s'', s295, s296, 1 + p(x') + s297, 1 + s145 + s298, z'', s866) :|: s866 >= 0, s866 <= z'' + x'' + 1, s295 >= 0, s295 <= z, s296 >= 0, s296 <= z', s297 >= 0, s297 <= z, s298 >= 0, s298 <= z', s145 >= 0, s145 <= 0 + 1, s'' >= 0, s'' <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 2, s1, s299, s300, 1 + p(x') + s301, 1 + s146 + s302, z'', s867) :|: s867 >= 0, s867 <= z'' + 0 + 1, s299 >= 0, s299 <= z, s300 >= 0, s300 <= z', s301 >= 0, s301 <= z, s302 >= 0, s302 <= z', s146 >= 0, s146 <= 0 + 1, s1 >= 0, s1 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x + z'' }-> if(2, 2, s10, s335, s336, 1 + p(0) + s337, 1 + s155 + s338, z'', s876) :|: s876 >= 0, s876 <= z'' + x' + 1, s335 >= 0, s335 <= z, s336 >= 0, s336 <= z', s337 >= 0, s337 <= z, s338 >= 0, s338 <= z', s155 >= 0, s155 <= x + 1, s10 >= 0, s10 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x + z'' }-> if(2, 2, s11, s339, s340, 1 + p(0) + s341, 1 + s156 + s342, z'', s877) :|: s877 >= 0, s877 <= z'' + 0 + 1, s339 >= 0, s339 <= z, s340 >= 0, s340 <= z', s341 >= 0, s341 <= z, s342 >= 0, s342 <= z', s156 >= 0, s156 <= x + 1, s11 >= 0, s11 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 2, s12, s343, s344, 1 + p(0) + s345, 1 + s157 + s346, z'', s878) :|: s878 >= 0, s878 <= z'' + x + 1, s343 >= 0, s343 <= z, s344 >= 0, s344 <= z', s345 >= 0, s345 <= z, s346 >= 0, s346 <= z', s157 >= 0, s157 <= 0 + 1, s12 >= 0, s12 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(2, 2, s13, s347, s348, 1 + p(0) + s349, 1 + s158 + s350, z'', s879) :|: s879 >= 0, s879 <= z'' + 0 + 1, s347 >= 0, s347 <= z, s348 >= 0, s348 <= z', s349 >= 0, s349 <= z, s350 >= 0, s350 <= z', s158 >= 0, s158 <= 0 + 1, s13 >= 0, s13 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 addLists(z, z', z'') -{ 13 + x' + z'' }-> if(2, 2, s2, s303, s304, 1 + p(0) + s305, 1 + s147 + s306, z'', s868) :|: s868 >= 0, s868 <= z'' + x'' + 1, s303 >= 0, s303 <= z, s304 >= 0, s304 <= z', s305 >= 0, s305 <= z, s306 >= 0, s306 <= z', s147 >= 0, s147 <= x' + 1, s2 >= 0, s2 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(2, 2, s3, s307, s308, 1 + p(0) + s309, 1 + s148 + s310, z'', s869) :|: s869 >= 0, s869 <= z'' + 0 + 1, s307 >= 0, s307 <= z, s308 >= 0, s308 <= z', s309 >= 0, s309 <= z, s310 >= 0, s310 <= z', s148 >= 0, s148 <= x' + 1, s3 >= 0, s3 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 2, s4, s311, s312, 1 + p(0) + s313, 1 + s149 + s314, z'', s870) :|: s870 >= 0, s870 <= z'' + x' + 1, s311 >= 0, s311 <= z, s312 >= 0, s312 <= z', s313 >= 0, s313 <= z, s314 >= 0, s314 <= z', s149 >= 0, s149 <= 0 + 1, s4 >= 0, s4 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 2, s5, s315, s316, 1 + p(0) + s317, 1 + s150 + s318, z'', s871) :|: s871 >= 0, s871 <= z'' + 0 + 1, s315 >= 0, s315 <= z, s316 >= 0, s316 <= z', s317 >= 0, s317 <= z, s318 >= 0, s318 <= z', s150 >= 0, s150 <= 0 + 1, s5 >= 0, s5 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 13 + x' + z'' }-> if(2, 2, s6, s319, s320, 1 + p(x) + s321, 1 + s151 + s322, z'', s872) :|: s872 >= 0, s872 <= z'' + x'' + 1, s319 >= 0, s319 <= z, s320 >= 0, s320 <= z', s321 >= 0, s321 <= z, s322 >= 0, s322 <= z', s151 >= 0, s151 <= x' + 1, s6 >= 0, s6 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(2, 2, s7, s323, s324, 1 + p(x) + s325, 1 + s152 + s326, z'', s873) :|: s873 >= 0, s873 <= z'' + 0 + 1, s323 >= 0, s323 <= z, s324 >= 0, s324 <= z', s325 >= 0, s325 <= z, s326 >= 0, s326 <= z', s152 >= 0, s152 <= x' + 1, s7 >= 0, s7 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 2, s8, s327, s328, 1 + p(x) + s329, 1 + s153 + s330, z'', s874) :|: s874 >= 0, s874 <= z'' + x' + 1, s327 >= 0, s327 <= z, s328 >= 0, s328 <= z', s329 >= 0, s329 <= z, s330 >= 0, s330 <= z', s153 >= 0, s153 <= 0 + 1, s8 >= 0, s8 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 2, s9, s331, s332, 1 + p(x) + s333, 1 + s154 + s334, z'', s875) :|: s875 >= 0, s875 <= z'' + 0 + 1, s331 >= 0, s331 <= z, s332 >= 0, s332 <= z', s333 >= 0, s333 <= z, s334 >= 0, s334 <= z', s154 >= 0, s154 <= 0 + 1, s9 >= 0, s9 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 14 + x1 + z'' }-> if(2, 1, s30, s415, s416, 1 + p(x'') + s417, 1 + s175 + s418, z'', s896) :|: s896 >= 0, s896 <= z'' + x2 + 1, s415 >= 0, s415 <= z, s416 >= 0, s416 <= z', s417 >= 0, s417 <= z, s418 >= 0, s418 <= z', s175 >= 0, s175 <= x1 + 1, s30 >= 0, s30 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 13 + x1 + z'' }-> if(2, 1, s31, s419, s420, 1 + p(x'') + s421, 1 + s176 + s422, z'', s897) :|: s897 >= 0, s897 <= z'' + 0 + 1, s419 >= 0, s419 <= z, s420 >= 0, s420 <= z', s421 >= 0, s421 <= z, s422 >= 0, s422 <= z', s176 >= 0, s176 <= x1 + 1, s31 >= 0, s31 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 13 + z'' }-> if(2, 1, s32, s423, s424, 1 + p(x'') + s425, 1 + s177 + s426, z'', s898) :|: s898 >= 0, s898 <= z'' + x1 + 1, s423 >= 0, s423 <= z, s424 >= 0, s424 <= z', s425 >= 0, s425 <= z, s426 >= 0, s426 <= z', s177 >= 0, s177 <= 0 + 1, s32 >= 0, s32 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 1, s33, s427, s428, 1 + p(x'') + s429, 1 + s178 + s430, z'', s899) :|: s899 >= 0, s899 <= z'' + 0 + 1, s427 >= 0, s427 <= z, s428 >= 0, s428 <= z', s429 >= 0, s429 <= z, s430 >= 0, s430 <= z', s178 >= 0, s178 <= 0 + 1, s33 >= 0, s33 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(2, 1, s34, s431, s432, 1 + p(0) + s433, 1 + s179 + s434, z'', s900) :|: s900 >= 0, s900 <= z'' + x1 + 1, s431 >= 0, s431 <= z, s432 >= 0, s432 <= z', s433 >= 0, s433 <= z, s434 >= 0, s434 <= z', s179 >= 0, s179 <= x'' + 1, s34 >= 0, s34 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(2, 1, s35, s435, s436, 1 + p(0) + s437, 1 + s180 + s438, z'', s901) :|: s901 >= 0, s901 <= z'' + 0 + 1, s435 >= 0, s435 <= z, s436 >= 0, s436 <= z', s437 >= 0, s437 <= z, s438 >= 0, s438 <= z', s180 >= 0, s180 <= x'' + 1, s35 >= 0, s35 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 1, s36, s439, s440, 1 + p(0) + s441, 1 + s181 + s442, z'', s902) :|: s902 >= 0, s902 <= z'' + x'' + 1, s439 >= 0, s439 <= z, s440 >= 0, s440 <= z', s441 >= 0, s441 <= z, s442 >= 0, s442 <= z', s181 >= 0, s181 <= 0 + 1, s36 >= 0, s36 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 1, s37, s443, s444, 1 + p(0) + s445, 1 + s182 + s446, z'', s903) :|: s903 >= 0, s903 <= z'' + 0 + 1, s443 >= 0, s443 <= z, s444 >= 0, s444 <= z', s445 >= 0, s445 <= z, s446 >= 0, s446 <= z', s182 >= 0, s182 <= 0 + 1, s37 >= 0, s37 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(2, 1, s38, s447, s448, 1 + p(x') + s449, 1 + s183 + s450, z'', s904) :|: s904 >= 0, s904 <= z'' + x1 + 1, s447 >= 0, s447 <= z, s448 >= 0, s448 <= z', s449 >= 0, s449 <= z, s450 >= 0, s450 <= z', s183 >= 0, s183 <= x'' + 1, s38 >= 0, s38 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(2, 1, s39, s451, s452, 1 + p(x') + s453, 1 + s184 + s454, z'', s905) :|: s905 >= 0, s905 <= z'' + 0 + 1, s451 >= 0, s451 <= z, s452 >= 0, s452 <= z', s453 >= 0, s453 <= z, s454 >= 0, s454 <= z', s184 >= 0, s184 <= x'' + 1, s39 >= 0, s39 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 1, s40, s455, s456, 1 + p(x') + s457, 1 + s185 + s458, z'', s906) :|: s906 >= 0, s906 <= z'' + x'' + 1, s455 >= 0, s455 <= z, s456 >= 0, s456 <= z', s457 >= 0, s457 <= z, s458 >= 0, s458 <= z', s185 >= 0, s185 <= 0 + 1, s40 >= 0, s40 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 1, s41, s459, s460, 1 + p(x') + s461, 1 + s186 + s462, z'', s907) :|: s907 >= 0, s907 <= z'' + 0 + 1, s459 >= 0, s459 <= z, s460 >= 0, s460 <= z', s461 >= 0, s461 <= z, s462 >= 0, s462 <= z', s186 >= 0, s186 <= 0 + 1, s41 >= 0, s41 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(2, 1, s42, s463, s464, 1 + p(0) + s465, 1 + s187 + s466, z'', s908) :|: s908 >= 0, s908 <= z'' + x'' + 1, s463 >= 0, s463 <= z, s464 >= 0, s464 <= z', s465 >= 0, s465 <= z, s466 >= 0, s466 <= z', s187 >= 0, s187 <= x' + 1, s42 >= 0, s42 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(2, 1, s43, s467, s468, 1 + p(0) + s469, 1 + s188 + s470, z'', s909) :|: s909 >= 0, s909 <= z'' + 0 + 1, s467 >= 0, s467 <= z, s468 >= 0, s468 <= z', s469 >= 0, s469 <= z, s470 >= 0, s470 <= z', s188 >= 0, s188 <= x' + 1, s43 >= 0, s43 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 1, s44, s471, s472, 1 + p(0) + s473, 1 + s189 + s474, z'', s910) :|: s910 >= 0, s910 <= z'' + x' + 1, s471 >= 0, s471 <= z, s472 >= 0, s472 <= z', s473 >= 0, s473 <= z, s474 >= 0, s474 <= z', s189 >= 0, s189 <= 0 + 1, s44 >= 0, s44 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(2, 1, s45, s475, s476, 1 + p(0) + s477, 1 + s190 + s478, z'', s911) :|: s911 >= 0, s911 <= z'' + 0 + 1, s475 >= 0, s475 <= z, s476 >= 0, s476 <= z', s477 >= 0, s477 <= z, s478 >= 0, s478 <= z', s190 >= 0, s190 <= 0 + 1, s45 >= 0, s45 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(2, 0, s14, s351, s352, 1 + p(x') + s353, 1 + s159 + s354, z'', s880) :|: s880 >= 0, s880 <= z'' + x1 + 1, s351 >= 0, s351 <= z, s352 >= 0, s352 <= z', s353 >= 0, s353 <= z, s354 >= 0, s354 <= z', s159 >= 0, s159 <= x'' + 1, s14 >= 0, s14 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(2, 0, s15, s355, s356, 1 + p(x') + s357, 1 + s160 + s358, z'', s881) :|: s881 >= 0, s881 <= z'' + 0 + 1, s355 >= 0, s355 <= z, s356 >= 0, s356 <= z', s357 >= 0, s357 <= z, s358 >= 0, s358 <= z', s160 >= 0, s160 <= x'' + 1, s15 >= 0, s15 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 0, s16, s359, s360, 1 + p(x') + s361, 1 + s161 + s362, z'', s882) :|: s882 >= 0, s882 <= z'' + x'' + 1, s359 >= 0, s359 <= z, s360 >= 0, s360 <= z', s361 >= 0, s361 <= z, s362 >= 0, s362 <= z', s161 >= 0, s161 <= 0 + 1, s16 >= 0, s16 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 0, s17, s363, s364, 1 + p(x') + s365, 1 + s162 + s366, z'', s883) :|: s883 >= 0, s883 <= z'' + 0 + 1, s363 >= 0, s363 <= z, s364 >= 0, s364 <= z', s365 >= 0, s365 <= z, s366 >= 0, s366 <= z', s162 >= 0, s162 <= 0 + 1, s17 >= 0, s17 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(2, 0, s18, s367, s368, 1 + p(0) + s369, 1 + s163 + s370, z'', s884) :|: s884 >= 0, s884 <= z'' + x'' + 1, s367 >= 0, s367 <= z, s368 >= 0, s368 <= z', s369 >= 0, s369 <= z, s370 >= 0, s370 <= z', s163 >= 0, s163 <= x' + 1, s18 >= 0, s18 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(2, 0, s19, s371, s372, 1 + p(0) + s373, 1 + s164 + s374, z'', s885) :|: s885 >= 0, s885 <= z'' + 0 + 1, s371 >= 0, s371 <= z, s372 >= 0, s372 <= z', s373 >= 0, s373 <= z, s374 >= 0, s374 <= z', s164 >= 0, s164 <= x' + 1, s19 >= 0, s19 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 0, s20, s375, s376, 1 + p(0) + s377, 1 + s165 + s378, z'', s886) :|: s886 >= 0, s886 <= z'' + x' + 1, s375 >= 0, s375 <= z, s376 >= 0, s376 <= z', s377 >= 0, s377 <= z, s378 >= 0, s378 <= z', s165 >= 0, s165 <= 0 + 1, s20 >= 0, s20 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(2, 0, s21, s379, s380, 1 + p(0) + s381, 1 + s166 + s382, z'', s887) :|: s887 >= 0, s887 <= z'' + 0 + 1, s379 >= 0, s379 <= z, s380 >= 0, s380 <= z', s381 >= 0, s381 <= z, s382 >= 0, s382 <= z', s166 >= 0, s166 <= 0 + 1, s21 >= 0, s21 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(2, 0, s22, s383, s384, 1 + p(x) + s385, 1 + s167 + s386, z'', s888) :|: s888 >= 0, s888 <= z'' + x'' + 1, s383 >= 0, s383 <= z, s384 >= 0, s384 <= z', s385 >= 0, s385 <= z, s386 >= 0, s386 <= z', s167 >= 0, s167 <= x' + 1, s22 >= 0, s22 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(2, 0, s23, s387, s388, 1 + p(x) + s389, 1 + s168 + s390, z'', s889) :|: s889 >= 0, s889 <= z'' + 0 + 1, s387 >= 0, s387 <= z, s388 >= 0, s388 <= z', s389 >= 0, s389 <= z, s390 >= 0, s390 <= z', s168 >= 0, s168 <= x' + 1, s23 >= 0, s23 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 0, s24, s391, s392, 1 + p(x) + s393, 1 + s169 + s394, z'', s890) :|: s890 >= 0, s890 <= z'' + x' + 1, s391 >= 0, s391 <= z, s392 >= 0, s392 <= z', s393 >= 0, s393 <= z, s394 >= 0, s394 <= z', s169 >= 0, s169 <= 0 + 1, s24 >= 0, s24 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(2, 0, s25, s395, s396, 1 + p(x) + s397, 1 + s170 + s398, z'', s891) :|: s891 >= 0, s891 <= z'' + 0 + 1, s395 >= 0, s395 <= z, s396 >= 0, s396 <= z', s397 >= 0, s397 <= z, s398 >= 0, s398 <= z', s170 >= 0, s170 <= 0 + 1, s25 >= 0, s25 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 11 + x + z'' }-> if(2, 0, s26, s399, s400, 1 + p(0) + s401, 1 + s171 + s402, z'', s892) :|: s892 >= 0, s892 <= z'' + x' + 1, s399 >= 0, s399 <= z, s400 >= 0, s400 <= z', s401 >= 0, s401 <= z, s402 >= 0, s402 <= z', s171 >= 0, s171 <= x + 1, s26 >= 0, s26 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + x + z'' }-> if(2, 0, s27, s403, s404, 1 + p(0) + s405, 1 + s172 + s406, z'', s893) :|: s893 >= 0, s893 <= z'' + 0 + 1, s403 >= 0, s403 <= z, s404 >= 0, s404 <= z', s405 >= 0, s405 <= z, s406 >= 0, s406 <= z', s172 >= 0, s172 <= x + 1, s27 >= 0, s27 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(2, 0, s28, s407, s408, 1 + p(0) + s409, 1 + s173 + s410, z'', s894) :|: s894 >= 0, s894 <= z'' + x + 1, s407 >= 0, s407 <= z, s408 >= 0, s408 <= z', s409 >= 0, s409 <= z, s410 >= 0, s410 <= z', s173 >= 0, s173 <= 0 + 1, s28 >= 0, s28 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(2, 0, s29, s411, s412, 1 + p(0) + s413, 1 + s174 + s414, z'', s895) :|: s895 >= 0, s895 <= z'' + 0 + 1, s411 >= 0, s411 <= z, s412 >= 0, s412 <= z', s413 >= 0, s413 <= z, s414 >= 0, s414 <= z', s174 >= 0, s174 <= 0 + 1, s29 >= 0, s29 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 2, s100, s695, s696, 1 + p(0) + s697, 1 + s245 + s698, z'', s966) :|: s966 >= 0, s966 <= z'' + x'' + 1, s695 >= 0, s695 <= z, s696 >= 0, s696 <= z', s697 >= 0, s697 <= z, s698 >= 0, s698 <= z', s245 >= 0, s245 <= 0 + 1, s100 >= 0, s100 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 2, s101, s699, s700, 1 + p(0) + s701, 1 + s246 + s702, z'', s967) :|: s967 >= 0, s967 <= z'' + 0 + 1, s699 >= 0, s699 <= z, s700 >= 0, s700 <= z', s701 >= 0, s701 <= z, s702 >= 0, s702 <= z', s246 >= 0, s246 <= 0 + 1, s101 >= 0, s101 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(1, 2, s102, s703, s704, 1 + p(x') + s705, 1 + s247 + s706, z'', s968) :|: s968 >= 0, s968 <= z'' + x1 + 1, s703 >= 0, s703 <= z, s704 >= 0, s704 <= z', s705 >= 0, s705 <= z, s706 >= 0, s706 <= z', s247 >= 0, s247 <= x'' + 1, s102 >= 0, s102 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(1, 2, s103, s707, s708, 1 + p(x') + s709, 1 + s248 + s710, z'', s969) :|: s969 >= 0, s969 <= z'' + 0 + 1, s707 >= 0, s707 <= z, s708 >= 0, s708 <= z', s709 >= 0, s709 <= z, s710 >= 0, s710 <= z', s248 >= 0, s248 <= x'' + 1, s103 >= 0, s103 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 2, s104, s711, s712, 1 + p(x') + s713, 1 + s249 + s714, z'', s970) :|: s970 >= 0, s970 <= z'' + x'' + 1, s711 >= 0, s711 <= z, s712 >= 0, s712 <= z', s713 >= 0, s713 <= z, s714 >= 0, s714 <= z', s249 >= 0, s249 <= 0 + 1, s104 >= 0, s104 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 2, s105, s715, s716, 1 + p(x') + s717, 1 + s250 + s718, z'', s971) :|: s971 >= 0, s971 <= z'' + 0 + 1, s715 >= 0, s715 <= z, s716 >= 0, s716 <= z', s717 >= 0, s717 <= z, s718 >= 0, s718 <= z', s250 >= 0, s250 <= 0 + 1, s105 >= 0, s105 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(1, 2, s106, s719, s720, 1 + p(0) + s721, 1 + s251 + s722, z'', s972) :|: s972 >= 0, s972 <= z'' + x'' + 1, s719 >= 0, s719 <= z, s720 >= 0, s720 <= z', s721 >= 0, s721 <= z, s722 >= 0, s722 <= z', s251 >= 0, s251 <= x' + 1, s106 >= 0, s106 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(1, 2, s107, s723, s724, 1 + p(0) + s725, 1 + s252 + s726, z'', s973) :|: s973 >= 0, s973 <= z'' + 0 + 1, s723 >= 0, s723 <= z, s724 >= 0, s724 <= z', s725 >= 0, s725 <= z, s726 >= 0, s726 <= z', s252 >= 0, s252 <= x' + 1, s107 >= 0, s107 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 2, s108, s727, s728, 1 + p(0) + s729, 1 + s253 + s730, z'', s974) :|: s974 >= 0, s974 <= z'' + x' + 1, s727 >= 0, s727 <= z, s728 >= 0, s728 <= z', s729 >= 0, s729 <= z, s730 >= 0, s730 <= z', s253 >= 0, s253 <= 0 + 1, s108 >= 0, s108 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(1, 2, s109, s731, s732, 1 + p(0) + s733, 1 + s254 + s734, z'', s975) :|: s975 >= 0, s975 <= z'' + 0 + 1, s731 >= 0, s731 <= z, s732 >= 0, s732 <= z', s733 >= 0, s733 <= z, s734 >= 0, s734 <= z', s254 >= 0, s254 <= 0 + 1, s109 >= 0, s109 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 addLists(z, z', z'') -{ 14 + x1 + z'' }-> if(1, 2, s94, s671, s672, 1 + p(x'') + s673, 1 + s239 + s674, z'', s960) :|: s960 >= 0, s960 <= z'' + x2 + 1, s671 >= 0, s671 <= z, s672 >= 0, s672 <= z', s673 >= 0, s673 <= z, s674 >= 0, s674 <= z', s239 >= 0, s239 <= x1 + 1, s94 >= 0, s94 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 13 + x1 + z'' }-> if(1, 2, s95, s675, s676, 1 + p(x'') + s677, 1 + s240 + s678, z'', s961) :|: s961 >= 0, s961 <= z'' + 0 + 1, s675 >= 0, s675 <= z, s676 >= 0, s676 <= z', s677 >= 0, s677 <= z, s678 >= 0, s678 <= z', s240 >= 0, s240 <= x1 + 1, s95 >= 0, s95 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 13 + z'' }-> if(1, 2, s96, s679, s680, 1 + p(x'') + s681, 1 + s241 + s682, z'', s962) :|: s962 >= 0, s962 <= z'' + x1 + 1, s679 >= 0, s679 <= z, s680 >= 0, s680 <= z', s681 >= 0, s681 <= z, s682 >= 0, s682 <= z', s241 >= 0, s241 <= 0 + 1, s96 >= 0, s96 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 2, s97, s683, s684, 1 + p(x'') + s685, 1 + s242 + s686, z'', s963) :|: s963 >= 0, s963 <= z'' + 0 + 1, s683 >= 0, s683 <= z, s684 >= 0, s684 <= z', s685 >= 0, s685 <= z, s686 >= 0, s686 <= z', s242 >= 0, s242 <= 0 + 1, s97 >= 0, s97 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(1, 2, s98, s687, s688, 1 + p(0) + s689, 1 + s243 + s690, z'', s964) :|: s964 >= 0, s964 <= z'' + x1 + 1, s687 >= 0, s687 <= z, s688 >= 0, s688 <= z', s689 >= 0, s689 <= z, s690 >= 0, s690 <= z', s243 >= 0, s243 <= x'' + 1, s98 >= 0, s98 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(1, 2, s99, s691, s692, 1 + p(0) + s693, 1 + s244 + s694, z'', s965) :|: s965 >= 0, s965 <= z'' + 0 + 1, s691 >= 0, s691 <= z, s692 >= 0, s692 <= z', s693 >= 0, s693 <= z, s694 >= 0, s694 <= z', s244 >= 0, s244 <= x'' + 1, s99 >= 0, s99 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 14 + x2 + z'' }-> if(1, 1, s126, s799, s800, 1 + p(x1) + s801, 1 + s271 + s802, z'', s992) :|: s992 >= 0, s992 <= z'' + x3 + 1, s799 >= 0, s799 <= z, s800 >= 0, s800 <= z', s801 >= 0, s801 <= z, s802 >= 0, s802 <= z', s271 >= 0, s271 <= x2 + 1, s126 >= 0, s126 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0, z' = 1 + x3 + xs4, xs4 >= 0, x3 >= 0 addLists(z, z', z'') -{ 13 + x2 + z'' }-> if(1, 1, s127, s803, s804, 1 + p(x1) + s805, 1 + s272 + s806, z'', s993) :|: s993 >= 0, s993 <= z'' + 0 + 1, s803 >= 0, s803 <= z, s804 >= 0, s804 <= z', s805 >= 0, s805 <= z, s806 >= 0, s806 <= z', s272 >= 0, s272 <= x2 + 1, s127 >= 0, s127 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 13 + z'' }-> if(1, 1, s128, s807, s808, 1 + p(x1) + s809, 1 + s273 + s810, z'', s994) :|: s994 >= 0, s994 <= z'' + x2 + 1, s807 >= 0, s807 <= z, s808 >= 0, s808 <= z', s809 >= 0, s809 <= z, s810 >= 0, s810 <= z', s273 >= 0, s273 <= 0 + 1, s128 >= 0, s128 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 1, s129, s811, s812, 1 + p(x1) + s813, 1 + s274 + s814, z'', s995) :|: s995 >= 0, s995 <= z'' + 0 + 1, s811 >= 0, s811 <= z, s812 >= 0, s812 <= z', s813 >= 0, s813 <= z, s814 >= 0, s814 <= z', s274 >= 0, s274 <= 0 + 1, s129 >= 0, s129 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 13 + x1 + z'' }-> if(1, 1, s130, s815, s816, 1 + p(0) + s817, 1 + s275 + s818, z'', s996) :|: s996 >= 0, s996 <= z'' + x2 + 1, s815 >= 0, s815 <= z, s816 >= 0, s816 <= z', s817 >= 0, s817 <= z, s818 >= 0, s818 <= z', s275 >= 0, s275 <= x1 + 1, s130 >= 0, s130 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 + x1 + z'' }-> if(1, 1, s131, s819, s820, 1 + p(0) + s821, 1 + s276 + s822, z'', s997) :|: s997 >= 0, s997 <= z'' + 0 + 1, s819 >= 0, s819 <= z, s820 >= 0, s820 <= z', s821 >= 0, s821 <= z, s822 >= 0, s822 <= z', s276 >= 0, s276 <= x1 + 1, s131 >= 0, s131 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 1, s132, s823, s824, 1 + p(0) + s825, 1 + s277 + s826, z'', s998) :|: s998 >= 0, s998 <= z'' + x1 + 1, s823 >= 0, s823 <= z, s824 >= 0, s824 <= z', s825 >= 0, s825 <= z, s826 >= 0, s826 <= z', s277 >= 0, s277 <= 0 + 1, s132 >= 0, s132 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 1, s133, s827, s828, 1 + p(0) + s829, 1 + s278 + s830, z'', s999) :|: s999 >= 0, s999 <= z'' + 0 + 1, s827 >= 0, s827 <= z, s828 >= 0, s828 <= z', s829 >= 0, s829 <= z, s830 >= 0, s830 <= z', s278 >= 0, s278 <= 0 + 1, s133 >= 0, s133 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + x1 + z'' }-> if(1, 1, s134, s831, s832, 1 + p(x'') + s833, 1 + s279 + s834, z'', s1000) :|: s1000 >= 0, s1000 <= z'' + x2 + 1, s831 >= 0, s831 <= z, s832 >= 0, s832 <= z', s833 >= 0, s833 <= z, s834 >= 0, s834 <= z', s279 >= 0, s279 <= x1 + 1, s134 >= 0, s134 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 + x1 + z'' }-> if(1, 1, s135, s835, s836, 1 + p(x'') + s837, 1 + s280 + s838, z'', s1001) :|: s1001 >= 0, s1001 <= z'' + 0 + 1, s835 >= 0, s835 <= z, s836 >= 0, s836 <= z', s837 >= 0, s837 <= z, s838 >= 0, s838 <= z', s280 >= 0, s280 <= x1 + 1, s135 >= 0, s135 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 1, s136, s839, s840, 1 + p(x'') + s841, 1 + s281 + s842, z'', s1002) :|: s1002 >= 0, s1002 <= z'' + x1 + 1, s839 >= 0, s839 <= z, s840 >= 0, s840 <= z', s841 >= 0, s841 <= z, s842 >= 0, s842 <= z', s281 >= 0, s281 <= 0 + 1, s136 >= 0, s136 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 1, s137, s843, s844, 1 + p(x'') + s845, 1 + s282 + s846, z'', s1003) :|: s1003 >= 0, s1003 <= z'' + 0 + 1, s843 >= 0, s843 <= z, s844 >= 0, s844 <= z', s845 >= 0, s845 <= z, s846 >= 0, s846 <= z', s282 >= 0, s282 <= 0 + 1, s137 >= 0, s137 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(1, 1, s138, s847, s848, 1 + p(0) + s849, 1 + s283 + s850, z'', s1004) :|: s1004 >= 0, s1004 <= z'' + x1 + 1, s847 >= 0, s847 <= z, s848 >= 0, s848 <= z', s849 >= 0, s849 <= z, s850 >= 0, s850 <= z', s283 >= 0, s283 <= x'' + 1, s138 >= 0, s138 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' + z'' }-> if(1, 1, s139, s851, s852, 1 + p(0) + s853, 1 + s284 + s854, z'', s1005) :|: s1005 >= 0, s1005 <= z'' + 0 + 1, s851 >= 0, s851 <= z, s852 >= 0, s852 <= z', s853 >= 0, s853 <= z, s854 >= 0, s854 <= z', s284 >= 0, s284 <= x'' + 1, s139 >= 0, s139 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 1, s140, s855, s856, 1 + p(0) + s857, 1 + s285 + s858, z'', s1006) :|: s1006 >= 0, s1006 <= z'' + x'' + 1, s855 >= 0, s855 <= z, s856 >= 0, s856 <= z', s857 >= 0, s857 <= z, s858 >= 0, s858 <= z', s285 >= 0, s285 <= 0 + 1, s140 >= 0, s140 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(1, 1, s141, s859, s860, 1 + p(0) + s861, 1 + s286 + s862, z'', s1007) :|: s1007 >= 0, s1007 <= z'' + 0 + 1, s859 >= 0, s859 <= z, s860 >= 0, s860 <= z', s861 >= 0, s861 <= z, s862 >= 0, s862 <= z', s286 >= 0, s286 <= 0 + 1, s141 >= 0, s141 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 13 + x1 + z'' }-> if(1, 0, s110, s735, s736, 1 + p(x'') + s737, 1 + s255 + s738, z'', s976) :|: s976 >= 0, s976 <= z'' + x2 + 1, s735 >= 0, s735 <= z, s736 >= 0, s736 <= z', s737 >= 0, s737 <= z, s738 >= 0, s738 <= z', s255 >= 0, s255 <= x1 + 1, s110 >= 0, s110 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 + x1 + z'' }-> if(1, 0, s111, s739, s740, 1 + p(x'') + s741, 1 + s256 + s742, z'', s977) :|: s977 >= 0, s977 <= z'' + 0 + 1, s739 >= 0, s739 <= z, s740 >= 0, s740 <= z', s741 >= 0, s741 <= z, s742 >= 0, s742 <= z', s256 >= 0, s256 <= x1 + 1, s111 >= 0, s111 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 0, s112, s743, s744, 1 + p(x'') + s745, 1 + s257 + s746, z'', s978) :|: s978 >= 0, s978 <= z'' + x1 + 1, s743 >= 0, s743 <= z, s744 >= 0, s744 <= z', s745 >= 0, s745 <= z, s746 >= 0, s746 <= z', s257 >= 0, s257 <= 0 + 1, s112 >= 0, s112 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 0, s113, s747, s748, 1 + p(x'') + s749, 1 + s258 + s750, z'', s979) :|: s979 >= 0, s979 <= z'' + 0 + 1, s747 >= 0, s747 <= z, s748 >= 0, s748 <= z', s749 >= 0, s749 <= z, s750 >= 0, s750 <= z', s258 >= 0, s258 <= 0 + 1, s113 >= 0, s113 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(1, 0, s114, s751, s752, 1 + p(0) + s753, 1 + s259 + s754, z'', s980) :|: s980 >= 0, s980 <= z'' + x1 + 1, s751 >= 0, s751 <= z, s752 >= 0, s752 <= z', s753 >= 0, s753 <= z, s754 >= 0, s754 <= z', s259 >= 0, s259 <= x'' + 1, s114 >= 0, s114 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' + z'' }-> if(1, 0, s115, s755, s756, 1 + p(0) + s757, 1 + s260 + s758, z'', s981) :|: s981 >= 0, s981 <= z'' + 0 + 1, s755 >= 0, s755 <= z, s756 >= 0, s756 <= z', s757 >= 0, s757 <= z, s758 >= 0, s758 <= z', s260 >= 0, s260 <= x'' + 1, s115 >= 0, s115 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 0, s116, s759, s760, 1 + p(0) + s761, 1 + s261 + s762, z'', s982) :|: s982 >= 0, s982 <= z'' + x'' + 1, s759 >= 0, s759 <= z, s760 >= 0, s760 <= z', s761 >= 0, s761 <= z, s762 >= 0, s762 <= z', s261 >= 0, s261 <= 0 + 1, s116 >= 0, s116 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(1, 0, s117, s763, s764, 1 + p(0) + s765, 1 + s262 + s766, z'', s983) :|: s983 >= 0, s983 <= z'' + 0 + 1, s763 >= 0, s763 <= z, s764 >= 0, s764 <= z', s765 >= 0, s765 <= z, s766 >= 0, s766 <= z', s262 >= 0, s262 <= 0 + 1, s117 >= 0, s117 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(1, 0, s118, s767, s768, 1 + p(x') + s769, 1 + s263 + s770, z'', s984) :|: s984 >= 0, s984 <= z'' + x1 + 1, s767 >= 0, s767 <= z, s768 >= 0, s768 <= z', s769 >= 0, s769 <= z, s770 >= 0, s770 <= z', s263 >= 0, s263 <= x'' + 1, s118 >= 0, s118 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' + z'' }-> if(1, 0, s119, s771, s772, 1 + p(x') + s773, 1 + s264 + s774, z'', s985) :|: s985 >= 0, s985 <= z'' + 0 + 1, s771 >= 0, s771 <= z, s772 >= 0, s772 <= z', s773 >= 0, s773 <= z, s774 >= 0, s774 <= z', s264 >= 0, s264 <= x'' + 1, s119 >= 0, s119 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 0, s120, s775, s776, 1 + p(x') + s777, 1 + s265 + s778, z'', s986) :|: s986 >= 0, s986 <= z'' + x'' + 1, s775 >= 0, s775 <= z, s776 >= 0, s776 <= z', s777 >= 0, s777 <= z, s778 >= 0, s778 <= z', s265 >= 0, s265 <= 0 + 1, s120 >= 0, s120 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(1, 0, s121, s779, s780, 1 + p(x') + s781, 1 + s266 + s782, z'', s987) :|: s987 >= 0, s987 <= z'' + 0 + 1, s779 >= 0, s779 <= z, s780 >= 0, s780 <= z', s781 >= 0, s781 <= z, s782 >= 0, s782 <= z', s266 >= 0, s266 <= 0 + 1, s121 >= 0, s121 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(1, 0, s122, s783, s784, 1 + p(0) + s785, 1 + s267 + s786, z'', s988) :|: s988 >= 0, s988 <= z'' + x'' + 1, s783 >= 0, s783 <= z, s784 >= 0, s784 <= z', s785 >= 0, s785 <= z, s786 >= 0, s786 <= z', s267 >= 0, s267 <= x' + 1, s122 >= 0, s122 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' + z'' }-> if(1, 0, s123, s787, s788, 1 + p(0) + s789, 1 + s268 + s790, z'', s989) :|: s989 >= 0, s989 <= z'' + 0 + 1, s787 >= 0, s787 <= z, s788 >= 0, s788 <= z', s789 >= 0, s789 <= z, s790 >= 0, s790 <= z', s268 >= 0, s268 <= x' + 1, s123 >= 0, s123 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(1, 0, s124, s791, s792, 1 + p(0) + s793, 1 + s269 + s794, z'', s990) :|: s990 >= 0, s990 <= z'' + x' + 1, s791 >= 0, s791 <= z, s792 >= 0, s792 <= z', s793 >= 0, s793 <= z, s794 >= 0, s794 <= z', s269 >= 0, s269 <= 0 + 1, s124 >= 0, s124 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(1, 0, s125, s795, s796, 1 + p(0) + s797, 1 + s270 + s798, z'', s991) :|: s991 >= 0, s991 <= z'' + 0 + 1, s795 >= 0, s795 <= z, s796 >= 0, s796 <= z', s797 >= 0, s797 <= z, s798 >= 0, s798 <= z', s270 >= 0, s270 <= 0 + 1, s125 >= 0, s125 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(0, 2, s46, s479, s480, 1 + p(x') + s481, 1 + s191 + s482, z'', s912) :|: s912 >= 0, s912 <= z'' + x1 + 1, s479 >= 0, s479 <= z, s480 >= 0, s480 <= z', s481 >= 0, s481 <= z, s482 >= 0, s482 <= z', s191 >= 0, s191 <= x'' + 1, s46 >= 0, s46 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(0, 2, s47, s483, s484, 1 + p(x') + s485, 1 + s192 + s486, z'', s913) :|: s913 >= 0, s913 <= z'' + 0 + 1, s483 >= 0, s483 <= z, s484 >= 0, s484 <= z', s485 >= 0, s485 <= z, s486 >= 0, s486 <= z', s192 >= 0, s192 <= x'' + 1, s47 >= 0, s47 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(0, 2, s48, s487, s488, 1 + p(x') + s489, 1 + s193 + s490, z'', s914) :|: s914 >= 0, s914 <= z'' + x'' + 1, s487 >= 0, s487 <= z, s488 >= 0, s488 <= z', s489 >= 0, s489 <= z, s490 >= 0, s490 <= z', s193 >= 0, s193 <= 0 + 1, s48 >= 0, s48 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 2, s49, s491, s492, 1 + p(x') + s493, 1 + s194 + s494, z'', s915) :|: s915 >= 0, s915 <= z'' + 0 + 1, s491 >= 0, s491 <= z, s492 >= 0, s492 <= z', s493 >= 0, s493 <= z, s494 >= 0, s494 <= z', s194 >= 0, s194 <= 0 + 1, s49 >= 0, s49 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(0, 2, s50, s495, s496, 1 + p(0) + s497, 1 + s195 + s498, z'', s916) :|: s916 >= 0, s916 <= z'' + x'' + 1, s495 >= 0, s495 <= z, s496 >= 0, s496 <= z', s497 >= 0, s497 <= z, s498 >= 0, s498 <= z', s195 >= 0, s195 <= x' + 1, s50 >= 0, s50 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(0, 2, s51, s499, s500, 1 + p(0) + s501, 1 + s196 + s502, z'', s917) :|: s917 >= 0, s917 <= z'' + 0 + 1, s499 >= 0, s499 <= z, s500 >= 0, s500 <= z', s501 >= 0, s501 <= z, s502 >= 0, s502 <= z', s196 >= 0, s196 <= x' + 1, s51 >= 0, s51 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 2, s52, s503, s504, 1 + p(0) + s505, 1 + s197 + s506, z'', s918) :|: s918 >= 0, s918 <= z'' + x' + 1, s503 >= 0, s503 <= z, s504 >= 0, s504 <= z', s505 >= 0, s505 <= z, s506 >= 0, s506 <= z', s197 >= 0, s197 <= 0 + 1, s52 >= 0, s52 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 2, s53, s507, s508, 1 + p(0) + s509, 1 + s198 + s510, z'', s919) :|: s919 >= 0, s919 <= z'' + 0 + 1, s507 >= 0, s507 <= z, s508 >= 0, s508 <= z', s509 >= 0, s509 <= z, s510 >= 0, s510 <= z', s198 >= 0, s198 <= 0 + 1, s53 >= 0, s53 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(0, 2, s54, s511, s512, 1 + p(x) + s513, 1 + s199 + s514, z'', s920) :|: s920 >= 0, s920 <= z'' + x'' + 1, s511 >= 0, s511 <= z, s512 >= 0, s512 <= z', s513 >= 0, s513 <= z, s514 >= 0, s514 <= z', s199 >= 0, s199 <= x' + 1, s54 >= 0, s54 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(0, 2, s55, s515, s516, 1 + p(x) + s517, 1 + s200 + s518, z'', s921) :|: s921 >= 0, s921 <= z'' + 0 + 1, s515 >= 0, s515 <= z, s516 >= 0, s516 <= z', s517 >= 0, s517 <= z, s518 >= 0, s518 <= z', s200 >= 0, s200 <= x' + 1, s55 >= 0, s55 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 2, s56, s519, s520, 1 + p(x) + s521, 1 + s201 + s522, z'', s922) :|: s922 >= 0, s922 <= z'' + x' + 1, s519 >= 0, s519 <= z, s520 >= 0, s520 <= z', s521 >= 0, s521 <= z, s522 >= 0, s522 <= z', s201 >= 0, s201 <= 0 + 1, s56 >= 0, s56 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 2, s57, s523, s524, 1 + p(x) + s525, 1 + s202 + s526, z'', s923) :|: s923 >= 0, s923 <= z'' + 0 + 1, s523 >= 0, s523 <= z, s524 >= 0, s524 <= z', s525 >= 0, s525 <= z, s526 >= 0, s526 <= z', s202 >= 0, s202 <= 0 + 1, s57 >= 0, s57 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 11 + x + z'' }-> if(0, 2, s58, s527, s528, 1 + p(0) + s529, 1 + s203 + s530, z'', s924) :|: s924 >= 0, s924 <= z'' + x' + 1, s527 >= 0, s527 <= z, s528 >= 0, s528 <= z', s529 >= 0, s529 <= z, s530 >= 0, s530 <= z', s203 >= 0, s203 <= x + 1, s58 >= 0, s58 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + x + z'' }-> if(0, 2, s59, s531, s532, 1 + p(0) + s533, 1 + s204 + s534, z'', s925) :|: s925 >= 0, s925 <= z'' + 0 + 1, s531 >= 0, s531 <= z, s532 >= 0, s532 <= z', s533 >= 0, s533 <= z, s534 >= 0, s534 <= z', s204 >= 0, s204 <= x + 1, s59 >= 0, s59 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 2, s60, s535, s536, 1 + p(0) + s537, 1 + s205 + s538, z'', s926) :|: s926 >= 0, s926 <= z'' + x + 1, s535 >= 0, s535 <= z, s536 >= 0, s536 <= z', s537 >= 0, s537 <= z, s538 >= 0, s538 <= z', s205 >= 0, s205 <= 0 + 1, s60 >= 0, s60 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(0, 2, s61, s539, s540, 1 + p(0) + s541, 1 + s206 + s542, z'', s927) :|: s927 >= 0, s927 <= z'' + 0 + 1, s539 >= 0, s539 <= z, s540 >= 0, s540 <= z', s541 >= 0, s541 <= z, s542 >= 0, s542 <= z', s206 >= 0, s206 <= 0 + 1, s61 >= 0, s61 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 addLists(z, z', z'') -{ 13 + x1 + z'' }-> if(0, 1, s78, s607, s608, 1 + p(x'') + s609, 1 + s223 + s610, z'', s944) :|: s944 >= 0, s944 <= z'' + x2 + 1, s607 >= 0, s607 <= z, s608 >= 0, s608 <= z', s609 >= 0, s609 <= z, s610 >= 0, s610 <= z', s223 >= 0, s223 <= x1 + 1, s78 >= 0, s78 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 + x1 + z'' }-> if(0, 1, s79, s611, s612, 1 + p(x'') + s613, 1 + s224 + s614, z'', s945) :|: s945 >= 0, s945 <= z'' + 0 + 1, s611 >= 0, s611 <= z, s612 >= 0, s612 <= z', s613 >= 0, s613 <= z, s614 >= 0, s614 <= z', s224 >= 0, s224 <= x1 + 1, s79 >= 0, s79 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(0, 1, s80, s615, s616, 1 + p(x'') + s617, 1 + s225 + s618, z'', s946) :|: s946 >= 0, s946 <= z'' + x1 + 1, s615 >= 0, s615 <= z, s616 >= 0, s616 <= z', s617 >= 0, s617 <= z, s618 >= 0, s618 <= z', s225 >= 0, s225 <= 0 + 1, s80 >= 0, s80 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 1, s81, s619, s620, 1 + p(x'') + s621, 1 + s226 + s622, z'', s947) :|: s947 >= 0, s947 <= z'' + 0 + 1, s619 >= 0, s619 <= z, s620 >= 0, s620 <= z', s621 >= 0, s621 <= z, s622 >= 0, s622 <= z', s226 >= 0, s226 <= 0 + 1, s81 >= 0, s81 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(0, 1, s82, s623, s624, 1 + p(0) + s625, 1 + s227 + s626, z'', s948) :|: s948 >= 0, s948 <= z'' + x1 + 1, s623 >= 0, s623 <= z, s624 >= 0, s624 <= z', s625 >= 0, s625 <= z, s626 >= 0, s626 <= z', s227 >= 0, s227 <= x'' + 1, s82 >= 0, s82 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' + z'' }-> if(0, 1, s83, s627, s628, 1 + p(0) + s629, 1 + s228 + s630, z'', s949) :|: s949 >= 0, s949 <= z'' + 0 + 1, s627 >= 0, s627 <= z, s628 >= 0, s628 <= z', s629 >= 0, s629 <= z, s630 >= 0, s630 <= z', s228 >= 0, s228 <= x'' + 1, s83 >= 0, s83 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 1, s84, s631, s632, 1 + p(0) + s633, 1 + s229 + s634, z'', s950) :|: s950 >= 0, s950 <= z'' + x'' + 1, s631 >= 0, s631 <= z, s632 >= 0, s632 <= z', s633 >= 0, s633 <= z, s634 >= 0, s634 <= z', s229 >= 0, s229 <= 0 + 1, s84 >= 0, s84 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 1, s85, s635, s636, 1 + p(0) + s637, 1 + s230 + s638, z'', s951) :|: s951 >= 0, s951 <= z'' + 0 + 1, s635 >= 0, s635 <= z, s636 >= 0, s636 <= z', s637 >= 0, s637 <= z, s638 >= 0, s638 <= z', s230 >= 0, s230 <= 0 + 1, s85 >= 0, s85 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(0, 1, s86, s639, s640, 1 + p(x') + s641, 1 + s231 + s642, z'', s952) :|: s952 >= 0, s952 <= z'' + x1 + 1, s639 >= 0, s639 <= z, s640 >= 0, s640 <= z', s641 >= 0, s641 <= z, s642 >= 0, s642 <= z', s231 >= 0, s231 <= x'' + 1, s86 >= 0, s86 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' + z'' }-> if(0, 1, s87, s643, s644, 1 + p(x') + s645, 1 + s232 + s646, z'', s953) :|: s953 >= 0, s953 <= z'' + 0 + 1, s643 >= 0, s643 <= z, s644 >= 0, s644 <= z', s645 >= 0, s645 <= z, s646 >= 0, s646 <= z', s232 >= 0, s232 <= x'' + 1, s87 >= 0, s87 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 1, s88, s647, s648, 1 + p(x') + s649, 1 + s233 + s650, z'', s954) :|: s954 >= 0, s954 <= z'' + x'' + 1, s647 >= 0, s647 <= z, s648 >= 0, s648 <= z', s649 >= 0, s649 <= z, s650 >= 0, s650 <= z', s233 >= 0, s233 <= 0 + 1, s88 >= 0, s88 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 1, s89, s651, s652, 1 + p(x') + s653, 1 + s234 + s654, z'', s955) :|: s955 >= 0, s955 <= z'' + 0 + 1, s651 >= 0, s651 <= z, s652 >= 0, s652 <= z', s653 >= 0, s653 <= z, s654 >= 0, s654 <= z', s234 >= 0, s234 <= 0 + 1, s89 >= 0, s89 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(0, 1, s90, s655, s656, 1 + p(0) + s657, 1 + s235 + s658, z'', s956) :|: s956 >= 0, s956 <= z'' + x'' + 1, s655 >= 0, s655 <= z, s656 >= 0, s656 <= z', s657 >= 0, s657 <= z, s658 >= 0, s658 <= z', s235 >= 0, s235 <= x' + 1, s90 >= 0, s90 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' + z'' }-> if(0, 1, s91, s659, s660, 1 + p(0) + s661, 1 + s236 + s662, z'', s957) :|: s957 >= 0, s957 <= z'' + 0 + 1, s659 >= 0, s659 <= z, s660 >= 0, s660 <= z', s661 >= 0, s661 <= z, s662 >= 0, s662 <= z', s236 >= 0, s236 <= x' + 1, s91 >= 0, s91 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 1, s92, s663, s664, 1 + p(0) + s665, 1 + s237 + s666, z'', s958) :|: s958 >= 0, s958 <= z'' + x' + 1, s663 >= 0, s663 <= z, s664 >= 0, s664 <= z', s665 >= 0, s665 <= z, s666 >= 0, s666 <= z', s237 >= 0, s237 <= 0 + 1, s92 >= 0, s92 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(0, 1, s93, s667, s668, 1 + p(0) + s669, 1 + s238 + s670, z'', s959) :|: s959 >= 0, s959 <= z'' + 0 + 1, s667 >= 0, s667 <= z, s668 >= 0, s668 <= z', s669 >= 0, s669 <= z, s670 >= 0, s670 <= z', s238 >= 0, s238 <= 0 + 1, s93 >= 0, s93 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(0, 0, s62, s543, s544, 1 + p(x') + s545, 1 + s207 + s546, z'', s928) :|: s928 >= 0, s928 <= z'' + x1 + 1, s543 >= 0, s543 <= z, s544 >= 0, s544 <= z', s545 >= 0, s545 <= z, s546 >= 0, s546 <= z', s207 >= 0, s207 <= x'' + 1, s62 >= 0, s62 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' + z'' }-> if(0, 0, s63, s547, s548, 1 + p(x') + s549, 1 + s208 + s550, z'', s929) :|: s929 >= 0, s929 <= z'' + 0 + 1, s547 >= 0, s547 <= z, s548 >= 0, s548 <= z', s549 >= 0, s549 <= z, s550 >= 0, s550 <= z', s208 >= 0, s208 <= x'' + 1, s63 >= 0, s63 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 0, s64, s551, s552, 1 + p(x') + s553, 1 + s209 + s554, z'', s930) :|: s930 >= 0, s930 <= z'' + x'' + 1, s551 >= 0, s551 <= z, s552 >= 0, s552 <= z', s553 >= 0, s553 <= z, s554 >= 0, s554 <= z', s209 >= 0, s209 <= 0 + 1, s64 >= 0, s64 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 0, s65, s555, s556, 1 + p(x') + s557, 1 + s210 + s558, z'', s931) :|: s931 >= 0, s931 <= z'' + 0 + 1, s555 >= 0, s555 <= z, s556 >= 0, s556 <= z', s557 >= 0, s557 <= z, s558 >= 0, s558 <= z', s210 >= 0, s210 <= 0 + 1, s65 >= 0, s65 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(0, 0, s66, s559, s560, 1 + p(0) + s561, 1 + s211 + s562, z'', s932) :|: s932 >= 0, s932 <= z'' + x'' + 1, s559 >= 0, s559 <= z, s560 >= 0, s560 <= z', s561 >= 0, s561 <= z, s562 >= 0, s562 <= z', s211 >= 0, s211 <= x' + 1, s66 >= 0, s66 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' + z'' }-> if(0, 0, s67, s563, s564, 1 + p(0) + s565, 1 + s212 + s566, z'', s933) :|: s933 >= 0, s933 <= z'' + 0 + 1, s563 >= 0, s563 <= z, s564 >= 0, s564 <= z', s565 >= 0, s565 <= z, s566 >= 0, s566 <= z', s212 >= 0, s212 <= x' + 1, s67 >= 0, s67 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 0, s68, s567, s568, 1 + p(0) + s569, 1 + s213 + s570, z'', s934) :|: s934 >= 0, s934 <= z'' + x' + 1, s567 >= 0, s567 <= z, s568 >= 0, s568 <= z', s569 >= 0, s569 <= z, s570 >= 0, s570 <= z', s213 >= 0, s213 <= 0 + 1, s68 >= 0, s68 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(0, 0, s69, s571, s572, 1 + p(0) + s573, 1 + s214 + s574, z'', s935) :|: s935 >= 0, s935 <= z'' + 0 + 1, s571 >= 0, s571 <= z, s572 >= 0, s572 <= z', s573 >= 0, s573 <= z, s574 >= 0, s574 <= z', s214 >= 0, s214 <= 0 + 1, s69 >= 0, s69 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(0, 0, s70, s575, s576, 1 + p(x) + s577, 1 + s215 + s578, z'', s936) :|: s936 >= 0, s936 <= z'' + x'' + 1, s575 >= 0, s575 <= z, s576 >= 0, s576 <= z', s577 >= 0, s577 <= z, s578 >= 0, s578 <= z', s215 >= 0, s215 <= x' + 1, s70 >= 0, s70 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' + z'' }-> if(0, 0, s71, s579, s580, 1 + p(x) + s581, 1 + s216 + s582, z'', s937) :|: s937 >= 0, s937 <= z'' + 0 + 1, s579 >= 0, s579 <= z, s580 >= 0, s580 <= z', s581 >= 0, s581 <= z, s582 >= 0, s582 <= z', s216 >= 0, s216 <= x' + 1, s71 >= 0, s71 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 0, s72, s583, s584, 1 + p(x) + s585, 1 + s217 + s586, z'', s938) :|: s938 >= 0, s938 <= z'' + x' + 1, s583 >= 0, s583 <= z, s584 >= 0, s584 <= z', s585 >= 0, s585 <= z, s586 >= 0, s586 <= z', s217 >= 0, s217 <= 0 + 1, s72 >= 0, s72 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(0, 0, s73, s587, s588, 1 + p(x) + s589, 1 + s218 + s590, z'', s939) :|: s939 >= 0, s939 <= z'' + 0 + 1, s587 >= 0, s587 <= z, s588 >= 0, s588 <= z', s589 >= 0, s589 <= z, s590 >= 0, s590 <= z', s218 >= 0, s218 <= 0 + 1, s73 >= 0, s73 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 10 + x + z'' }-> if(0, 0, s74, s591, s592, 1 + p(0) + s593, 1 + s219 + s594, z'', s940) :|: s940 >= 0, s940 <= z'' + x' + 1, s591 >= 0, s591 <= z, s592 >= 0, s592 <= z', s593 >= 0, s593 <= z, s594 >= 0, s594 <= z', s219 >= 0, s219 <= x + 1, s74 >= 0, s74 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 + x + z'' }-> if(0, 0, s75, s595, s596, 1 + p(0) + s597, 1 + s220 + s598, z'', s941) :|: s941 >= 0, s941 <= z'' + 0 + 1, s595 >= 0, s595 <= z, s596 >= 0, s596 <= z', s597 >= 0, s597 <= z, s598 >= 0, s598 <= z', s220 >= 0, s220 <= x + 1, s75 >= 0, s75 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(0, 0, s76, s599, s600, 1 + p(0) + s601, 1 + s221 + s602, z'', s942) :|: s942 >= 0, s942 <= z'' + x + 1, s599 >= 0, s599 <= z, s600 >= 0, s600 <= z', s601 >= 0, s601 <= z, s602 >= 0, s602 <= z', s221 >= 0, s221 <= 0 + 1, s76 >= 0, s76 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 8 + z'' }-> if(0, 0, s77, s603, s604, 1 + p(0) + s605, 1 + s222 + s606, z'', s943) :|: s943 >= 0, s943 <= z'' + 0 + 1, s603 >= 0, s603 <= z, s604 >= 0, s604 <= z', s605 >= 0, s605 <= z, s606 >= 0, s606 <= z', s222 >= 0, s222 <= 0 + 1, s77 >= 0, s77 <= 2, z >= 0, z' >= 0, z'' >= 0 append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 append(z, z') -{ 2 + ys }-> 1 + y + s863 :|: s863 >= 0, s863 <= ys + z' + 1, ys >= 0, y >= 0, z' >= 0, z = 1 + y + ys append(z, z') -{ 1 }-> 1 + z' + 1 :|: z = 1, z' >= 0 head(z) -{ 1 }-> x :|: z = 1 + x + xs, xs >= 0, x >= 0 head(z) -{ 0 }-> 0 :|: z >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> z5 :|: z1 >= 0, z' = 2, z5 >= 0, z6 >= 0, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z1, z2, z6) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 2, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z3, z4, z5) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 1, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z5 >= 0, z6 >= 0, z' = 1, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z' = 2, z = 1, z5 >= 0, z6 >= 0, z4 >= 0, z'' >= 0, z3 >= 0, z2 >= 0 inc(z) -{ 1 + z }-> 1 + s142 :|: s142 >= 0, s142 <= z - 1 + 1, z - 1 >= 0 inc(z) -{ 1 }-> 1 + 0 :|: z = 0 isEmpty(z) -{ 1 }-> 2 :|: z = 1 isEmpty(z) -{ 1 }-> 1 :|: z = 1 + x + xs, xs >= 0, x >= 0 isEmpty(z) -{ 0 }-> 0 :|: z >= 0 isZero(z) -{ 1 }-> 2 :|: z = 0 isZero(z) -{ 1 }-> 1 :|: z - 1 >= 0 p(z) -{ 1 }-> 0 :|: z = 1 + 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 1 }-> 1 + p(1 + (z - 2)) :|: z - 2 >= 0 tail(z) -{ 1 }-> xs :|: z = 1 + x + xs, xs >= 0, x >= 0 tail(z) -{ 1 }-> 1 :|: z = 1 tail(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {p}, {addLists,if}, {addList} Previous analysis results are: isEmpty: runtime: O(1) [1], size: O(1) [2] isZero: runtime: O(1) [1], size: O(1) [2] inc: runtime: O(n^1) [1 + z], size: O(n^1) [1 + z] tail: runtime: O(1) [1], size: O(n^1) [z] append: runtime: O(n^1) [1 + z], size: O(n^1) [1 + z + z'] head: runtime: O(1) [1], size: O(n^1) [z] p: runtime: ?, size: O(n^1) [z] ---------------------------------------- (61) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: p after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 2 + z ---------------------------------------- (62) Obligation: Complexity RNTS consisting of the following rules: addList(z, z') -{ 1 }-> addLists(z, z', 1) :|: z >= 0, z' >= 0 addLists(z, z', z'') -{ 14 + x'' + z'' }-> if(2, 2, s, s287, s288, 1 + p(x') + s289, 1 + s143 + s290, z'', s864) :|: s864 >= 0, s864 <= z'' + x1 + 1, s287 >= 0, s287 <= z, s288 >= 0, s288 <= z', s289 >= 0, s289 <= z, s290 >= 0, s290 <= z', s143 >= 0, s143 <= x'' + 1, s >= 0, s <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(2, 2, s', s291, s292, 1 + p(x') + s293, 1 + s144 + s294, z'', s865) :|: s865 >= 0, s865 <= z'' + 0 + 1, s291 >= 0, s291 <= z, s292 >= 0, s292 <= z', s293 >= 0, s293 <= z, s294 >= 0, s294 <= z', s144 >= 0, s144 <= x'' + 1, s' >= 0, s' <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + z'' }-> if(2, 2, s'', s295, s296, 1 + p(x') + s297, 1 + s145 + s298, z'', s866) :|: s866 >= 0, s866 <= z'' + x'' + 1, s295 >= 0, s295 <= z, s296 >= 0, s296 <= z', s297 >= 0, s297 <= z, s298 >= 0, s298 <= z', s145 >= 0, s145 <= 0 + 1, s'' >= 0, s'' <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 2, s1, s299, s300, 1 + p(x') + s301, 1 + s146 + s302, z'', s867) :|: s867 >= 0, s867 <= z'' + 0 + 1, s299 >= 0, s299 <= z, s300 >= 0, s300 <= z', s301 >= 0, s301 <= z, s302 >= 0, s302 <= z', s146 >= 0, s146 <= 0 + 1, s1 >= 0, s1 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x + z'' }-> if(2, 2, s10, s335, s336, 1 + p(0) + s337, 1 + s155 + s338, z'', s876) :|: s876 >= 0, s876 <= z'' + x' + 1, s335 >= 0, s335 <= z, s336 >= 0, s336 <= z', s337 >= 0, s337 <= z, s338 >= 0, s338 <= z', s155 >= 0, s155 <= x + 1, s10 >= 0, s10 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x + z'' }-> if(2, 2, s11, s339, s340, 1 + p(0) + s341, 1 + s156 + s342, z'', s877) :|: s877 >= 0, s877 <= z'' + 0 + 1, s339 >= 0, s339 <= z, s340 >= 0, s340 <= z', s341 >= 0, s341 <= z, s342 >= 0, s342 <= z', s156 >= 0, s156 <= x + 1, s11 >= 0, s11 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 2, s12, s343, s344, 1 + p(0) + s345, 1 + s157 + s346, z'', s878) :|: s878 >= 0, s878 <= z'' + x + 1, s343 >= 0, s343 <= z, s344 >= 0, s344 <= z', s345 >= 0, s345 <= z, s346 >= 0, s346 <= z', s157 >= 0, s157 <= 0 + 1, s12 >= 0, s12 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(2, 2, s13, s347, s348, 1 + p(0) + s349, 1 + s158 + s350, z'', s879) :|: s879 >= 0, s879 <= z'' + 0 + 1, s347 >= 0, s347 <= z, s348 >= 0, s348 <= z', s349 >= 0, s349 <= z, s350 >= 0, s350 <= z', s158 >= 0, s158 <= 0 + 1, s13 >= 0, s13 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 addLists(z, z', z'') -{ 13 + x' + z'' }-> if(2, 2, s2, s303, s304, 1 + p(0) + s305, 1 + s147 + s306, z'', s868) :|: s868 >= 0, s868 <= z'' + x'' + 1, s303 >= 0, s303 <= z, s304 >= 0, s304 <= z', s305 >= 0, s305 <= z, s306 >= 0, s306 <= z', s147 >= 0, s147 <= x' + 1, s2 >= 0, s2 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(2, 2, s3, s307, s308, 1 + p(0) + s309, 1 + s148 + s310, z'', s869) :|: s869 >= 0, s869 <= z'' + 0 + 1, s307 >= 0, s307 <= z, s308 >= 0, s308 <= z', s309 >= 0, s309 <= z, s310 >= 0, s310 <= z', s148 >= 0, s148 <= x' + 1, s3 >= 0, s3 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 2, s4, s311, s312, 1 + p(0) + s313, 1 + s149 + s314, z'', s870) :|: s870 >= 0, s870 <= z'' + x' + 1, s311 >= 0, s311 <= z, s312 >= 0, s312 <= z', s313 >= 0, s313 <= z, s314 >= 0, s314 <= z', s149 >= 0, s149 <= 0 + 1, s4 >= 0, s4 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 2, s5, s315, s316, 1 + p(0) + s317, 1 + s150 + s318, z'', s871) :|: s871 >= 0, s871 <= z'' + 0 + 1, s315 >= 0, s315 <= z, s316 >= 0, s316 <= z', s317 >= 0, s317 <= z, s318 >= 0, s318 <= z', s150 >= 0, s150 <= 0 + 1, s5 >= 0, s5 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 13 + x' + z'' }-> if(2, 2, s6, s319, s320, 1 + p(x) + s321, 1 + s151 + s322, z'', s872) :|: s872 >= 0, s872 <= z'' + x'' + 1, s319 >= 0, s319 <= z, s320 >= 0, s320 <= z', s321 >= 0, s321 <= z, s322 >= 0, s322 <= z', s151 >= 0, s151 <= x' + 1, s6 >= 0, s6 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(2, 2, s7, s323, s324, 1 + p(x) + s325, 1 + s152 + s326, z'', s873) :|: s873 >= 0, s873 <= z'' + 0 + 1, s323 >= 0, s323 <= z, s324 >= 0, s324 <= z', s325 >= 0, s325 <= z, s326 >= 0, s326 <= z', s152 >= 0, s152 <= x' + 1, s7 >= 0, s7 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 2, s8, s327, s328, 1 + p(x) + s329, 1 + s153 + s330, z'', s874) :|: s874 >= 0, s874 <= z'' + x' + 1, s327 >= 0, s327 <= z, s328 >= 0, s328 <= z', s329 >= 0, s329 <= z, s330 >= 0, s330 <= z', s153 >= 0, s153 <= 0 + 1, s8 >= 0, s8 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 2, s9, s331, s332, 1 + p(x) + s333, 1 + s154 + s334, z'', s875) :|: s875 >= 0, s875 <= z'' + 0 + 1, s331 >= 0, s331 <= z, s332 >= 0, s332 <= z', s333 >= 0, s333 <= z, s334 >= 0, s334 <= z', s154 >= 0, s154 <= 0 + 1, s9 >= 0, s9 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 14 + x1 + z'' }-> if(2, 1, s30, s415, s416, 1 + p(x'') + s417, 1 + s175 + s418, z'', s896) :|: s896 >= 0, s896 <= z'' + x2 + 1, s415 >= 0, s415 <= z, s416 >= 0, s416 <= z', s417 >= 0, s417 <= z, s418 >= 0, s418 <= z', s175 >= 0, s175 <= x1 + 1, s30 >= 0, s30 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 13 + x1 + z'' }-> if(2, 1, s31, s419, s420, 1 + p(x'') + s421, 1 + s176 + s422, z'', s897) :|: s897 >= 0, s897 <= z'' + 0 + 1, s419 >= 0, s419 <= z, s420 >= 0, s420 <= z', s421 >= 0, s421 <= z, s422 >= 0, s422 <= z', s176 >= 0, s176 <= x1 + 1, s31 >= 0, s31 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 13 + z'' }-> if(2, 1, s32, s423, s424, 1 + p(x'') + s425, 1 + s177 + s426, z'', s898) :|: s898 >= 0, s898 <= z'' + x1 + 1, s423 >= 0, s423 <= z, s424 >= 0, s424 <= z', s425 >= 0, s425 <= z, s426 >= 0, s426 <= z', s177 >= 0, s177 <= 0 + 1, s32 >= 0, s32 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 1, s33, s427, s428, 1 + p(x'') + s429, 1 + s178 + s430, z'', s899) :|: s899 >= 0, s899 <= z'' + 0 + 1, s427 >= 0, s427 <= z, s428 >= 0, s428 <= z', s429 >= 0, s429 <= z, s430 >= 0, s430 <= z', s178 >= 0, s178 <= 0 + 1, s33 >= 0, s33 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(2, 1, s34, s431, s432, 1 + p(0) + s433, 1 + s179 + s434, z'', s900) :|: s900 >= 0, s900 <= z'' + x1 + 1, s431 >= 0, s431 <= z, s432 >= 0, s432 <= z', s433 >= 0, s433 <= z, s434 >= 0, s434 <= z', s179 >= 0, s179 <= x'' + 1, s34 >= 0, s34 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(2, 1, s35, s435, s436, 1 + p(0) + s437, 1 + s180 + s438, z'', s901) :|: s901 >= 0, s901 <= z'' + 0 + 1, s435 >= 0, s435 <= z, s436 >= 0, s436 <= z', s437 >= 0, s437 <= z, s438 >= 0, s438 <= z', s180 >= 0, s180 <= x'' + 1, s35 >= 0, s35 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 1, s36, s439, s440, 1 + p(0) + s441, 1 + s181 + s442, z'', s902) :|: s902 >= 0, s902 <= z'' + x'' + 1, s439 >= 0, s439 <= z, s440 >= 0, s440 <= z', s441 >= 0, s441 <= z, s442 >= 0, s442 <= z', s181 >= 0, s181 <= 0 + 1, s36 >= 0, s36 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 1, s37, s443, s444, 1 + p(0) + s445, 1 + s182 + s446, z'', s903) :|: s903 >= 0, s903 <= z'' + 0 + 1, s443 >= 0, s443 <= z, s444 >= 0, s444 <= z', s445 >= 0, s445 <= z, s446 >= 0, s446 <= z', s182 >= 0, s182 <= 0 + 1, s37 >= 0, s37 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(2, 1, s38, s447, s448, 1 + p(x') + s449, 1 + s183 + s450, z'', s904) :|: s904 >= 0, s904 <= z'' + x1 + 1, s447 >= 0, s447 <= z, s448 >= 0, s448 <= z', s449 >= 0, s449 <= z, s450 >= 0, s450 <= z', s183 >= 0, s183 <= x'' + 1, s38 >= 0, s38 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(2, 1, s39, s451, s452, 1 + p(x') + s453, 1 + s184 + s454, z'', s905) :|: s905 >= 0, s905 <= z'' + 0 + 1, s451 >= 0, s451 <= z, s452 >= 0, s452 <= z', s453 >= 0, s453 <= z, s454 >= 0, s454 <= z', s184 >= 0, s184 <= x'' + 1, s39 >= 0, s39 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 1, s40, s455, s456, 1 + p(x') + s457, 1 + s185 + s458, z'', s906) :|: s906 >= 0, s906 <= z'' + x'' + 1, s455 >= 0, s455 <= z, s456 >= 0, s456 <= z', s457 >= 0, s457 <= z, s458 >= 0, s458 <= z', s185 >= 0, s185 <= 0 + 1, s40 >= 0, s40 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 1, s41, s459, s460, 1 + p(x') + s461, 1 + s186 + s462, z'', s907) :|: s907 >= 0, s907 <= z'' + 0 + 1, s459 >= 0, s459 <= z, s460 >= 0, s460 <= z', s461 >= 0, s461 <= z, s462 >= 0, s462 <= z', s186 >= 0, s186 <= 0 + 1, s41 >= 0, s41 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(2, 1, s42, s463, s464, 1 + p(0) + s465, 1 + s187 + s466, z'', s908) :|: s908 >= 0, s908 <= z'' + x'' + 1, s463 >= 0, s463 <= z, s464 >= 0, s464 <= z', s465 >= 0, s465 <= z, s466 >= 0, s466 <= z', s187 >= 0, s187 <= x' + 1, s42 >= 0, s42 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(2, 1, s43, s467, s468, 1 + p(0) + s469, 1 + s188 + s470, z'', s909) :|: s909 >= 0, s909 <= z'' + 0 + 1, s467 >= 0, s467 <= z, s468 >= 0, s468 <= z', s469 >= 0, s469 <= z, s470 >= 0, s470 <= z', s188 >= 0, s188 <= x' + 1, s43 >= 0, s43 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 1, s44, s471, s472, 1 + p(0) + s473, 1 + s189 + s474, z'', s910) :|: s910 >= 0, s910 <= z'' + x' + 1, s471 >= 0, s471 <= z, s472 >= 0, s472 <= z', s473 >= 0, s473 <= z, s474 >= 0, s474 <= z', s189 >= 0, s189 <= 0 + 1, s44 >= 0, s44 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(2, 1, s45, s475, s476, 1 + p(0) + s477, 1 + s190 + s478, z'', s911) :|: s911 >= 0, s911 <= z'' + 0 + 1, s475 >= 0, s475 <= z, s476 >= 0, s476 <= z', s477 >= 0, s477 <= z, s478 >= 0, s478 <= z', s190 >= 0, s190 <= 0 + 1, s45 >= 0, s45 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(2, 0, s14, s351, s352, 1 + p(x') + s353, 1 + s159 + s354, z'', s880) :|: s880 >= 0, s880 <= z'' + x1 + 1, s351 >= 0, s351 <= z, s352 >= 0, s352 <= z', s353 >= 0, s353 <= z, s354 >= 0, s354 <= z', s159 >= 0, s159 <= x'' + 1, s14 >= 0, s14 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(2, 0, s15, s355, s356, 1 + p(x') + s357, 1 + s160 + s358, z'', s881) :|: s881 >= 0, s881 <= z'' + 0 + 1, s355 >= 0, s355 <= z, s356 >= 0, s356 <= z', s357 >= 0, s357 <= z, s358 >= 0, s358 <= z', s160 >= 0, s160 <= x'' + 1, s15 >= 0, s15 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 0, s16, s359, s360, 1 + p(x') + s361, 1 + s161 + s362, z'', s882) :|: s882 >= 0, s882 <= z'' + x'' + 1, s359 >= 0, s359 <= z, s360 >= 0, s360 <= z', s361 >= 0, s361 <= z, s362 >= 0, s362 <= z', s161 >= 0, s161 <= 0 + 1, s16 >= 0, s16 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 0, s17, s363, s364, 1 + p(x') + s365, 1 + s162 + s366, z'', s883) :|: s883 >= 0, s883 <= z'' + 0 + 1, s363 >= 0, s363 <= z, s364 >= 0, s364 <= z', s365 >= 0, s365 <= z, s366 >= 0, s366 <= z', s162 >= 0, s162 <= 0 + 1, s17 >= 0, s17 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(2, 0, s18, s367, s368, 1 + p(0) + s369, 1 + s163 + s370, z'', s884) :|: s884 >= 0, s884 <= z'' + x'' + 1, s367 >= 0, s367 <= z, s368 >= 0, s368 <= z', s369 >= 0, s369 <= z, s370 >= 0, s370 <= z', s163 >= 0, s163 <= x' + 1, s18 >= 0, s18 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(2, 0, s19, s371, s372, 1 + p(0) + s373, 1 + s164 + s374, z'', s885) :|: s885 >= 0, s885 <= z'' + 0 + 1, s371 >= 0, s371 <= z, s372 >= 0, s372 <= z', s373 >= 0, s373 <= z, s374 >= 0, s374 <= z', s164 >= 0, s164 <= x' + 1, s19 >= 0, s19 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 0, s20, s375, s376, 1 + p(0) + s377, 1 + s165 + s378, z'', s886) :|: s886 >= 0, s886 <= z'' + x' + 1, s375 >= 0, s375 <= z, s376 >= 0, s376 <= z', s377 >= 0, s377 <= z, s378 >= 0, s378 <= z', s165 >= 0, s165 <= 0 + 1, s20 >= 0, s20 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(2, 0, s21, s379, s380, 1 + p(0) + s381, 1 + s166 + s382, z'', s887) :|: s887 >= 0, s887 <= z'' + 0 + 1, s379 >= 0, s379 <= z, s380 >= 0, s380 <= z', s381 >= 0, s381 <= z, s382 >= 0, s382 <= z', s166 >= 0, s166 <= 0 + 1, s21 >= 0, s21 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(2, 0, s22, s383, s384, 1 + p(x) + s385, 1 + s167 + s386, z'', s888) :|: s888 >= 0, s888 <= z'' + x'' + 1, s383 >= 0, s383 <= z, s384 >= 0, s384 <= z', s385 >= 0, s385 <= z, s386 >= 0, s386 <= z', s167 >= 0, s167 <= x' + 1, s22 >= 0, s22 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(2, 0, s23, s387, s388, 1 + p(x) + s389, 1 + s168 + s390, z'', s889) :|: s889 >= 0, s889 <= z'' + 0 + 1, s387 >= 0, s387 <= z, s388 >= 0, s388 <= z', s389 >= 0, s389 <= z, s390 >= 0, s390 <= z', s168 >= 0, s168 <= x' + 1, s23 >= 0, s23 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 0, s24, s391, s392, 1 + p(x) + s393, 1 + s169 + s394, z'', s890) :|: s890 >= 0, s890 <= z'' + x' + 1, s391 >= 0, s391 <= z, s392 >= 0, s392 <= z', s393 >= 0, s393 <= z, s394 >= 0, s394 <= z', s169 >= 0, s169 <= 0 + 1, s24 >= 0, s24 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(2, 0, s25, s395, s396, 1 + p(x) + s397, 1 + s170 + s398, z'', s891) :|: s891 >= 0, s891 <= z'' + 0 + 1, s395 >= 0, s395 <= z, s396 >= 0, s396 <= z', s397 >= 0, s397 <= z, s398 >= 0, s398 <= z', s170 >= 0, s170 <= 0 + 1, s25 >= 0, s25 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 11 + x + z'' }-> if(2, 0, s26, s399, s400, 1 + p(0) + s401, 1 + s171 + s402, z'', s892) :|: s892 >= 0, s892 <= z'' + x' + 1, s399 >= 0, s399 <= z, s400 >= 0, s400 <= z', s401 >= 0, s401 <= z, s402 >= 0, s402 <= z', s171 >= 0, s171 <= x + 1, s26 >= 0, s26 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + x + z'' }-> if(2, 0, s27, s403, s404, 1 + p(0) + s405, 1 + s172 + s406, z'', s893) :|: s893 >= 0, s893 <= z'' + 0 + 1, s403 >= 0, s403 <= z, s404 >= 0, s404 <= z', s405 >= 0, s405 <= z, s406 >= 0, s406 <= z', s172 >= 0, s172 <= x + 1, s27 >= 0, s27 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(2, 0, s28, s407, s408, 1 + p(0) + s409, 1 + s173 + s410, z'', s894) :|: s894 >= 0, s894 <= z'' + x + 1, s407 >= 0, s407 <= z, s408 >= 0, s408 <= z', s409 >= 0, s409 <= z, s410 >= 0, s410 <= z', s173 >= 0, s173 <= 0 + 1, s28 >= 0, s28 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(2, 0, s29, s411, s412, 1 + p(0) + s413, 1 + s174 + s414, z'', s895) :|: s895 >= 0, s895 <= z'' + 0 + 1, s411 >= 0, s411 <= z, s412 >= 0, s412 <= z', s413 >= 0, s413 <= z, s414 >= 0, s414 <= z', s174 >= 0, s174 <= 0 + 1, s29 >= 0, s29 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 2, s100, s695, s696, 1 + p(0) + s697, 1 + s245 + s698, z'', s966) :|: s966 >= 0, s966 <= z'' + x'' + 1, s695 >= 0, s695 <= z, s696 >= 0, s696 <= z', s697 >= 0, s697 <= z, s698 >= 0, s698 <= z', s245 >= 0, s245 <= 0 + 1, s100 >= 0, s100 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 2, s101, s699, s700, 1 + p(0) + s701, 1 + s246 + s702, z'', s967) :|: s967 >= 0, s967 <= z'' + 0 + 1, s699 >= 0, s699 <= z, s700 >= 0, s700 <= z', s701 >= 0, s701 <= z, s702 >= 0, s702 <= z', s246 >= 0, s246 <= 0 + 1, s101 >= 0, s101 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(1, 2, s102, s703, s704, 1 + p(x') + s705, 1 + s247 + s706, z'', s968) :|: s968 >= 0, s968 <= z'' + x1 + 1, s703 >= 0, s703 <= z, s704 >= 0, s704 <= z', s705 >= 0, s705 <= z, s706 >= 0, s706 <= z', s247 >= 0, s247 <= x'' + 1, s102 >= 0, s102 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(1, 2, s103, s707, s708, 1 + p(x') + s709, 1 + s248 + s710, z'', s969) :|: s969 >= 0, s969 <= z'' + 0 + 1, s707 >= 0, s707 <= z, s708 >= 0, s708 <= z', s709 >= 0, s709 <= z, s710 >= 0, s710 <= z', s248 >= 0, s248 <= x'' + 1, s103 >= 0, s103 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 2, s104, s711, s712, 1 + p(x') + s713, 1 + s249 + s714, z'', s970) :|: s970 >= 0, s970 <= z'' + x'' + 1, s711 >= 0, s711 <= z, s712 >= 0, s712 <= z', s713 >= 0, s713 <= z, s714 >= 0, s714 <= z', s249 >= 0, s249 <= 0 + 1, s104 >= 0, s104 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 2, s105, s715, s716, 1 + p(x') + s717, 1 + s250 + s718, z'', s971) :|: s971 >= 0, s971 <= z'' + 0 + 1, s715 >= 0, s715 <= z, s716 >= 0, s716 <= z', s717 >= 0, s717 <= z, s718 >= 0, s718 <= z', s250 >= 0, s250 <= 0 + 1, s105 >= 0, s105 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(1, 2, s106, s719, s720, 1 + p(0) + s721, 1 + s251 + s722, z'', s972) :|: s972 >= 0, s972 <= z'' + x'' + 1, s719 >= 0, s719 <= z, s720 >= 0, s720 <= z', s721 >= 0, s721 <= z, s722 >= 0, s722 <= z', s251 >= 0, s251 <= x' + 1, s106 >= 0, s106 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(1, 2, s107, s723, s724, 1 + p(0) + s725, 1 + s252 + s726, z'', s973) :|: s973 >= 0, s973 <= z'' + 0 + 1, s723 >= 0, s723 <= z, s724 >= 0, s724 <= z', s725 >= 0, s725 <= z, s726 >= 0, s726 <= z', s252 >= 0, s252 <= x' + 1, s107 >= 0, s107 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 2, s108, s727, s728, 1 + p(0) + s729, 1 + s253 + s730, z'', s974) :|: s974 >= 0, s974 <= z'' + x' + 1, s727 >= 0, s727 <= z, s728 >= 0, s728 <= z', s729 >= 0, s729 <= z, s730 >= 0, s730 <= z', s253 >= 0, s253 <= 0 + 1, s108 >= 0, s108 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(1, 2, s109, s731, s732, 1 + p(0) + s733, 1 + s254 + s734, z'', s975) :|: s975 >= 0, s975 <= z'' + 0 + 1, s731 >= 0, s731 <= z, s732 >= 0, s732 <= z', s733 >= 0, s733 <= z, s734 >= 0, s734 <= z', s254 >= 0, s254 <= 0 + 1, s109 >= 0, s109 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 addLists(z, z', z'') -{ 14 + x1 + z'' }-> if(1, 2, s94, s671, s672, 1 + p(x'') + s673, 1 + s239 + s674, z'', s960) :|: s960 >= 0, s960 <= z'' + x2 + 1, s671 >= 0, s671 <= z, s672 >= 0, s672 <= z', s673 >= 0, s673 <= z, s674 >= 0, s674 <= z', s239 >= 0, s239 <= x1 + 1, s94 >= 0, s94 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 13 + x1 + z'' }-> if(1, 2, s95, s675, s676, 1 + p(x'') + s677, 1 + s240 + s678, z'', s961) :|: s961 >= 0, s961 <= z'' + 0 + 1, s675 >= 0, s675 <= z, s676 >= 0, s676 <= z', s677 >= 0, s677 <= z, s678 >= 0, s678 <= z', s240 >= 0, s240 <= x1 + 1, s95 >= 0, s95 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 13 + z'' }-> if(1, 2, s96, s679, s680, 1 + p(x'') + s681, 1 + s241 + s682, z'', s962) :|: s962 >= 0, s962 <= z'' + x1 + 1, s679 >= 0, s679 <= z, s680 >= 0, s680 <= z', s681 >= 0, s681 <= z, s682 >= 0, s682 <= z', s241 >= 0, s241 <= 0 + 1, s96 >= 0, s96 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 2, s97, s683, s684, 1 + p(x'') + s685, 1 + s242 + s686, z'', s963) :|: s963 >= 0, s963 <= z'' + 0 + 1, s683 >= 0, s683 <= z, s684 >= 0, s684 <= z', s685 >= 0, s685 <= z, s686 >= 0, s686 <= z', s242 >= 0, s242 <= 0 + 1, s97 >= 0, s97 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(1, 2, s98, s687, s688, 1 + p(0) + s689, 1 + s243 + s690, z'', s964) :|: s964 >= 0, s964 <= z'' + x1 + 1, s687 >= 0, s687 <= z, s688 >= 0, s688 <= z', s689 >= 0, s689 <= z, s690 >= 0, s690 <= z', s243 >= 0, s243 <= x'' + 1, s98 >= 0, s98 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(1, 2, s99, s691, s692, 1 + p(0) + s693, 1 + s244 + s694, z'', s965) :|: s965 >= 0, s965 <= z'' + 0 + 1, s691 >= 0, s691 <= z, s692 >= 0, s692 <= z', s693 >= 0, s693 <= z, s694 >= 0, s694 <= z', s244 >= 0, s244 <= x'' + 1, s99 >= 0, s99 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 14 + x2 + z'' }-> if(1, 1, s126, s799, s800, 1 + p(x1) + s801, 1 + s271 + s802, z'', s992) :|: s992 >= 0, s992 <= z'' + x3 + 1, s799 >= 0, s799 <= z, s800 >= 0, s800 <= z', s801 >= 0, s801 <= z, s802 >= 0, s802 <= z', s271 >= 0, s271 <= x2 + 1, s126 >= 0, s126 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0, z' = 1 + x3 + xs4, xs4 >= 0, x3 >= 0 addLists(z, z', z'') -{ 13 + x2 + z'' }-> if(1, 1, s127, s803, s804, 1 + p(x1) + s805, 1 + s272 + s806, z'', s993) :|: s993 >= 0, s993 <= z'' + 0 + 1, s803 >= 0, s803 <= z, s804 >= 0, s804 <= z', s805 >= 0, s805 <= z, s806 >= 0, s806 <= z', s272 >= 0, s272 <= x2 + 1, s127 >= 0, s127 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 13 + z'' }-> if(1, 1, s128, s807, s808, 1 + p(x1) + s809, 1 + s273 + s810, z'', s994) :|: s994 >= 0, s994 <= z'' + x2 + 1, s807 >= 0, s807 <= z, s808 >= 0, s808 <= z', s809 >= 0, s809 <= z, s810 >= 0, s810 <= z', s273 >= 0, s273 <= 0 + 1, s128 >= 0, s128 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 1, s129, s811, s812, 1 + p(x1) + s813, 1 + s274 + s814, z'', s995) :|: s995 >= 0, s995 <= z'' + 0 + 1, s811 >= 0, s811 <= z, s812 >= 0, s812 <= z', s813 >= 0, s813 <= z, s814 >= 0, s814 <= z', s274 >= 0, s274 <= 0 + 1, s129 >= 0, s129 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 13 + x1 + z'' }-> if(1, 1, s130, s815, s816, 1 + p(0) + s817, 1 + s275 + s818, z'', s996) :|: s996 >= 0, s996 <= z'' + x2 + 1, s815 >= 0, s815 <= z, s816 >= 0, s816 <= z', s817 >= 0, s817 <= z, s818 >= 0, s818 <= z', s275 >= 0, s275 <= x1 + 1, s130 >= 0, s130 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 + x1 + z'' }-> if(1, 1, s131, s819, s820, 1 + p(0) + s821, 1 + s276 + s822, z'', s997) :|: s997 >= 0, s997 <= z'' + 0 + 1, s819 >= 0, s819 <= z, s820 >= 0, s820 <= z', s821 >= 0, s821 <= z, s822 >= 0, s822 <= z', s276 >= 0, s276 <= x1 + 1, s131 >= 0, s131 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 1, s132, s823, s824, 1 + p(0) + s825, 1 + s277 + s826, z'', s998) :|: s998 >= 0, s998 <= z'' + x1 + 1, s823 >= 0, s823 <= z, s824 >= 0, s824 <= z', s825 >= 0, s825 <= z, s826 >= 0, s826 <= z', s277 >= 0, s277 <= 0 + 1, s132 >= 0, s132 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 1, s133, s827, s828, 1 + p(0) + s829, 1 + s278 + s830, z'', s999) :|: s999 >= 0, s999 <= z'' + 0 + 1, s827 >= 0, s827 <= z, s828 >= 0, s828 <= z', s829 >= 0, s829 <= z, s830 >= 0, s830 <= z', s278 >= 0, s278 <= 0 + 1, s133 >= 0, s133 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + x1 + z'' }-> if(1, 1, s134, s831, s832, 1 + p(x'') + s833, 1 + s279 + s834, z'', s1000) :|: s1000 >= 0, s1000 <= z'' + x2 + 1, s831 >= 0, s831 <= z, s832 >= 0, s832 <= z', s833 >= 0, s833 <= z, s834 >= 0, s834 <= z', s279 >= 0, s279 <= x1 + 1, s134 >= 0, s134 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 + x1 + z'' }-> if(1, 1, s135, s835, s836, 1 + p(x'') + s837, 1 + s280 + s838, z'', s1001) :|: s1001 >= 0, s1001 <= z'' + 0 + 1, s835 >= 0, s835 <= z, s836 >= 0, s836 <= z', s837 >= 0, s837 <= z, s838 >= 0, s838 <= z', s280 >= 0, s280 <= x1 + 1, s135 >= 0, s135 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 1, s136, s839, s840, 1 + p(x'') + s841, 1 + s281 + s842, z'', s1002) :|: s1002 >= 0, s1002 <= z'' + x1 + 1, s839 >= 0, s839 <= z, s840 >= 0, s840 <= z', s841 >= 0, s841 <= z, s842 >= 0, s842 <= z', s281 >= 0, s281 <= 0 + 1, s136 >= 0, s136 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 1, s137, s843, s844, 1 + p(x'') + s845, 1 + s282 + s846, z'', s1003) :|: s1003 >= 0, s1003 <= z'' + 0 + 1, s843 >= 0, s843 <= z, s844 >= 0, s844 <= z', s845 >= 0, s845 <= z, s846 >= 0, s846 <= z', s282 >= 0, s282 <= 0 + 1, s137 >= 0, s137 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(1, 1, s138, s847, s848, 1 + p(0) + s849, 1 + s283 + s850, z'', s1004) :|: s1004 >= 0, s1004 <= z'' + x1 + 1, s847 >= 0, s847 <= z, s848 >= 0, s848 <= z', s849 >= 0, s849 <= z, s850 >= 0, s850 <= z', s283 >= 0, s283 <= x'' + 1, s138 >= 0, s138 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' + z'' }-> if(1, 1, s139, s851, s852, 1 + p(0) + s853, 1 + s284 + s854, z'', s1005) :|: s1005 >= 0, s1005 <= z'' + 0 + 1, s851 >= 0, s851 <= z, s852 >= 0, s852 <= z', s853 >= 0, s853 <= z, s854 >= 0, s854 <= z', s284 >= 0, s284 <= x'' + 1, s139 >= 0, s139 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 1, s140, s855, s856, 1 + p(0) + s857, 1 + s285 + s858, z'', s1006) :|: s1006 >= 0, s1006 <= z'' + x'' + 1, s855 >= 0, s855 <= z, s856 >= 0, s856 <= z', s857 >= 0, s857 <= z, s858 >= 0, s858 <= z', s285 >= 0, s285 <= 0 + 1, s140 >= 0, s140 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(1, 1, s141, s859, s860, 1 + p(0) + s861, 1 + s286 + s862, z'', s1007) :|: s1007 >= 0, s1007 <= z'' + 0 + 1, s859 >= 0, s859 <= z, s860 >= 0, s860 <= z', s861 >= 0, s861 <= z, s862 >= 0, s862 <= z', s286 >= 0, s286 <= 0 + 1, s141 >= 0, s141 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 13 + x1 + z'' }-> if(1, 0, s110, s735, s736, 1 + p(x'') + s737, 1 + s255 + s738, z'', s976) :|: s976 >= 0, s976 <= z'' + x2 + 1, s735 >= 0, s735 <= z, s736 >= 0, s736 <= z', s737 >= 0, s737 <= z, s738 >= 0, s738 <= z', s255 >= 0, s255 <= x1 + 1, s110 >= 0, s110 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 + x1 + z'' }-> if(1, 0, s111, s739, s740, 1 + p(x'') + s741, 1 + s256 + s742, z'', s977) :|: s977 >= 0, s977 <= z'' + 0 + 1, s739 >= 0, s739 <= z, s740 >= 0, s740 <= z', s741 >= 0, s741 <= z, s742 >= 0, s742 <= z', s256 >= 0, s256 <= x1 + 1, s111 >= 0, s111 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 0, s112, s743, s744, 1 + p(x'') + s745, 1 + s257 + s746, z'', s978) :|: s978 >= 0, s978 <= z'' + x1 + 1, s743 >= 0, s743 <= z, s744 >= 0, s744 <= z', s745 >= 0, s745 <= z, s746 >= 0, s746 <= z', s257 >= 0, s257 <= 0 + 1, s112 >= 0, s112 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 0, s113, s747, s748, 1 + p(x'') + s749, 1 + s258 + s750, z'', s979) :|: s979 >= 0, s979 <= z'' + 0 + 1, s747 >= 0, s747 <= z, s748 >= 0, s748 <= z', s749 >= 0, s749 <= z, s750 >= 0, s750 <= z', s258 >= 0, s258 <= 0 + 1, s113 >= 0, s113 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(1, 0, s114, s751, s752, 1 + p(0) + s753, 1 + s259 + s754, z'', s980) :|: s980 >= 0, s980 <= z'' + x1 + 1, s751 >= 0, s751 <= z, s752 >= 0, s752 <= z', s753 >= 0, s753 <= z, s754 >= 0, s754 <= z', s259 >= 0, s259 <= x'' + 1, s114 >= 0, s114 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' + z'' }-> if(1, 0, s115, s755, s756, 1 + p(0) + s757, 1 + s260 + s758, z'', s981) :|: s981 >= 0, s981 <= z'' + 0 + 1, s755 >= 0, s755 <= z, s756 >= 0, s756 <= z', s757 >= 0, s757 <= z, s758 >= 0, s758 <= z', s260 >= 0, s260 <= x'' + 1, s115 >= 0, s115 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 0, s116, s759, s760, 1 + p(0) + s761, 1 + s261 + s762, z'', s982) :|: s982 >= 0, s982 <= z'' + x'' + 1, s759 >= 0, s759 <= z, s760 >= 0, s760 <= z', s761 >= 0, s761 <= z, s762 >= 0, s762 <= z', s261 >= 0, s261 <= 0 + 1, s116 >= 0, s116 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(1, 0, s117, s763, s764, 1 + p(0) + s765, 1 + s262 + s766, z'', s983) :|: s983 >= 0, s983 <= z'' + 0 + 1, s763 >= 0, s763 <= z, s764 >= 0, s764 <= z', s765 >= 0, s765 <= z, s766 >= 0, s766 <= z', s262 >= 0, s262 <= 0 + 1, s117 >= 0, s117 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(1, 0, s118, s767, s768, 1 + p(x') + s769, 1 + s263 + s770, z'', s984) :|: s984 >= 0, s984 <= z'' + x1 + 1, s767 >= 0, s767 <= z, s768 >= 0, s768 <= z', s769 >= 0, s769 <= z, s770 >= 0, s770 <= z', s263 >= 0, s263 <= x'' + 1, s118 >= 0, s118 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' + z'' }-> if(1, 0, s119, s771, s772, 1 + p(x') + s773, 1 + s264 + s774, z'', s985) :|: s985 >= 0, s985 <= z'' + 0 + 1, s771 >= 0, s771 <= z, s772 >= 0, s772 <= z', s773 >= 0, s773 <= z, s774 >= 0, s774 <= z', s264 >= 0, s264 <= x'' + 1, s119 >= 0, s119 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 0, s120, s775, s776, 1 + p(x') + s777, 1 + s265 + s778, z'', s986) :|: s986 >= 0, s986 <= z'' + x'' + 1, s775 >= 0, s775 <= z, s776 >= 0, s776 <= z', s777 >= 0, s777 <= z, s778 >= 0, s778 <= z', s265 >= 0, s265 <= 0 + 1, s120 >= 0, s120 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(1, 0, s121, s779, s780, 1 + p(x') + s781, 1 + s266 + s782, z'', s987) :|: s987 >= 0, s987 <= z'' + 0 + 1, s779 >= 0, s779 <= z, s780 >= 0, s780 <= z', s781 >= 0, s781 <= z, s782 >= 0, s782 <= z', s266 >= 0, s266 <= 0 + 1, s121 >= 0, s121 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(1, 0, s122, s783, s784, 1 + p(0) + s785, 1 + s267 + s786, z'', s988) :|: s988 >= 0, s988 <= z'' + x'' + 1, s783 >= 0, s783 <= z, s784 >= 0, s784 <= z', s785 >= 0, s785 <= z, s786 >= 0, s786 <= z', s267 >= 0, s267 <= x' + 1, s122 >= 0, s122 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' + z'' }-> if(1, 0, s123, s787, s788, 1 + p(0) + s789, 1 + s268 + s790, z'', s989) :|: s989 >= 0, s989 <= z'' + 0 + 1, s787 >= 0, s787 <= z, s788 >= 0, s788 <= z', s789 >= 0, s789 <= z, s790 >= 0, s790 <= z', s268 >= 0, s268 <= x' + 1, s123 >= 0, s123 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(1, 0, s124, s791, s792, 1 + p(0) + s793, 1 + s269 + s794, z'', s990) :|: s990 >= 0, s990 <= z'' + x' + 1, s791 >= 0, s791 <= z, s792 >= 0, s792 <= z', s793 >= 0, s793 <= z, s794 >= 0, s794 <= z', s269 >= 0, s269 <= 0 + 1, s124 >= 0, s124 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(1, 0, s125, s795, s796, 1 + p(0) + s797, 1 + s270 + s798, z'', s991) :|: s991 >= 0, s991 <= z'' + 0 + 1, s795 >= 0, s795 <= z, s796 >= 0, s796 <= z', s797 >= 0, s797 <= z, s798 >= 0, s798 <= z', s270 >= 0, s270 <= 0 + 1, s125 >= 0, s125 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(0, 2, s46, s479, s480, 1 + p(x') + s481, 1 + s191 + s482, z'', s912) :|: s912 >= 0, s912 <= z'' + x1 + 1, s479 >= 0, s479 <= z, s480 >= 0, s480 <= z', s481 >= 0, s481 <= z, s482 >= 0, s482 <= z', s191 >= 0, s191 <= x'' + 1, s46 >= 0, s46 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(0, 2, s47, s483, s484, 1 + p(x') + s485, 1 + s192 + s486, z'', s913) :|: s913 >= 0, s913 <= z'' + 0 + 1, s483 >= 0, s483 <= z, s484 >= 0, s484 <= z', s485 >= 0, s485 <= z, s486 >= 0, s486 <= z', s192 >= 0, s192 <= x'' + 1, s47 >= 0, s47 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(0, 2, s48, s487, s488, 1 + p(x') + s489, 1 + s193 + s490, z'', s914) :|: s914 >= 0, s914 <= z'' + x'' + 1, s487 >= 0, s487 <= z, s488 >= 0, s488 <= z', s489 >= 0, s489 <= z, s490 >= 0, s490 <= z', s193 >= 0, s193 <= 0 + 1, s48 >= 0, s48 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 2, s49, s491, s492, 1 + p(x') + s493, 1 + s194 + s494, z'', s915) :|: s915 >= 0, s915 <= z'' + 0 + 1, s491 >= 0, s491 <= z, s492 >= 0, s492 <= z', s493 >= 0, s493 <= z, s494 >= 0, s494 <= z', s194 >= 0, s194 <= 0 + 1, s49 >= 0, s49 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(0, 2, s50, s495, s496, 1 + p(0) + s497, 1 + s195 + s498, z'', s916) :|: s916 >= 0, s916 <= z'' + x'' + 1, s495 >= 0, s495 <= z, s496 >= 0, s496 <= z', s497 >= 0, s497 <= z, s498 >= 0, s498 <= z', s195 >= 0, s195 <= x' + 1, s50 >= 0, s50 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(0, 2, s51, s499, s500, 1 + p(0) + s501, 1 + s196 + s502, z'', s917) :|: s917 >= 0, s917 <= z'' + 0 + 1, s499 >= 0, s499 <= z, s500 >= 0, s500 <= z', s501 >= 0, s501 <= z, s502 >= 0, s502 <= z', s196 >= 0, s196 <= x' + 1, s51 >= 0, s51 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 2, s52, s503, s504, 1 + p(0) + s505, 1 + s197 + s506, z'', s918) :|: s918 >= 0, s918 <= z'' + x' + 1, s503 >= 0, s503 <= z, s504 >= 0, s504 <= z', s505 >= 0, s505 <= z, s506 >= 0, s506 <= z', s197 >= 0, s197 <= 0 + 1, s52 >= 0, s52 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 2, s53, s507, s508, 1 + p(0) + s509, 1 + s198 + s510, z'', s919) :|: s919 >= 0, s919 <= z'' + 0 + 1, s507 >= 0, s507 <= z, s508 >= 0, s508 <= z', s509 >= 0, s509 <= z, s510 >= 0, s510 <= z', s198 >= 0, s198 <= 0 + 1, s53 >= 0, s53 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(0, 2, s54, s511, s512, 1 + p(x) + s513, 1 + s199 + s514, z'', s920) :|: s920 >= 0, s920 <= z'' + x'' + 1, s511 >= 0, s511 <= z, s512 >= 0, s512 <= z', s513 >= 0, s513 <= z, s514 >= 0, s514 <= z', s199 >= 0, s199 <= x' + 1, s54 >= 0, s54 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(0, 2, s55, s515, s516, 1 + p(x) + s517, 1 + s200 + s518, z'', s921) :|: s921 >= 0, s921 <= z'' + 0 + 1, s515 >= 0, s515 <= z, s516 >= 0, s516 <= z', s517 >= 0, s517 <= z, s518 >= 0, s518 <= z', s200 >= 0, s200 <= x' + 1, s55 >= 0, s55 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 2, s56, s519, s520, 1 + p(x) + s521, 1 + s201 + s522, z'', s922) :|: s922 >= 0, s922 <= z'' + x' + 1, s519 >= 0, s519 <= z, s520 >= 0, s520 <= z', s521 >= 0, s521 <= z, s522 >= 0, s522 <= z', s201 >= 0, s201 <= 0 + 1, s56 >= 0, s56 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 2, s57, s523, s524, 1 + p(x) + s525, 1 + s202 + s526, z'', s923) :|: s923 >= 0, s923 <= z'' + 0 + 1, s523 >= 0, s523 <= z, s524 >= 0, s524 <= z', s525 >= 0, s525 <= z, s526 >= 0, s526 <= z', s202 >= 0, s202 <= 0 + 1, s57 >= 0, s57 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 11 + x + z'' }-> if(0, 2, s58, s527, s528, 1 + p(0) + s529, 1 + s203 + s530, z'', s924) :|: s924 >= 0, s924 <= z'' + x' + 1, s527 >= 0, s527 <= z, s528 >= 0, s528 <= z', s529 >= 0, s529 <= z, s530 >= 0, s530 <= z', s203 >= 0, s203 <= x + 1, s58 >= 0, s58 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + x + z'' }-> if(0, 2, s59, s531, s532, 1 + p(0) + s533, 1 + s204 + s534, z'', s925) :|: s925 >= 0, s925 <= z'' + 0 + 1, s531 >= 0, s531 <= z, s532 >= 0, s532 <= z', s533 >= 0, s533 <= z, s534 >= 0, s534 <= z', s204 >= 0, s204 <= x + 1, s59 >= 0, s59 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 2, s60, s535, s536, 1 + p(0) + s537, 1 + s205 + s538, z'', s926) :|: s926 >= 0, s926 <= z'' + x + 1, s535 >= 0, s535 <= z, s536 >= 0, s536 <= z', s537 >= 0, s537 <= z, s538 >= 0, s538 <= z', s205 >= 0, s205 <= 0 + 1, s60 >= 0, s60 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(0, 2, s61, s539, s540, 1 + p(0) + s541, 1 + s206 + s542, z'', s927) :|: s927 >= 0, s927 <= z'' + 0 + 1, s539 >= 0, s539 <= z, s540 >= 0, s540 <= z', s541 >= 0, s541 <= z, s542 >= 0, s542 <= z', s206 >= 0, s206 <= 0 + 1, s61 >= 0, s61 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 addLists(z, z', z'') -{ 13 + x1 + z'' }-> if(0, 1, s78, s607, s608, 1 + p(x'') + s609, 1 + s223 + s610, z'', s944) :|: s944 >= 0, s944 <= z'' + x2 + 1, s607 >= 0, s607 <= z, s608 >= 0, s608 <= z', s609 >= 0, s609 <= z, s610 >= 0, s610 <= z', s223 >= 0, s223 <= x1 + 1, s78 >= 0, s78 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 12 + x1 + z'' }-> if(0, 1, s79, s611, s612, 1 + p(x'') + s613, 1 + s224 + s614, z'', s945) :|: s945 >= 0, s945 <= z'' + 0 + 1, s611 >= 0, s611 <= z, s612 >= 0, s612 <= z', s613 >= 0, s613 <= z, s614 >= 0, s614 <= z', s224 >= 0, s224 <= x1 + 1, s79 >= 0, s79 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(0, 1, s80, s615, s616, 1 + p(x'') + s617, 1 + s225 + s618, z'', s946) :|: s946 >= 0, s946 <= z'' + x1 + 1, s615 >= 0, s615 <= z, s616 >= 0, s616 <= z', s617 >= 0, s617 <= z, s618 >= 0, s618 <= z', s225 >= 0, s225 <= 0 + 1, s80 >= 0, s80 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 1, s81, s619, s620, 1 + p(x'') + s621, 1 + s226 + s622, z'', s947) :|: s947 >= 0, s947 <= z'' + 0 + 1, s619 >= 0, s619 <= z, s620 >= 0, s620 <= z', s621 >= 0, s621 <= z, s622 >= 0, s622 <= z', s226 >= 0, s226 <= 0 + 1, s81 >= 0, s81 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(0, 1, s82, s623, s624, 1 + p(0) + s625, 1 + s227 + s626, z'', s948) :|: s948 >= 0, s948 <= z'' + x1 + 1, s623 >= 0, s623 <= z, s624 >= 0, s624 <= z', s625 >= 0, s625 <= z, s626 >= 0, s626 <= z', s227 >= 0, s227 <= x'' + 1, s82 >= 0, s82 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' + z'' }-> if(0, 1, s83, s627, s628, 1 + p(0) + s629, 1 + s228 + s630, z'', s949) :|: s949 >= 0, s949 <= z'' + 0 + 1, s627 >= 0, s627 <= z, s628 >= 0, s628 <= z', s629 >= 0, s629 <= z, s630 >= 0, s630 <= z', s228 >= 0, s228 <= x'' + 1, s83 >= 0, s83 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 1, s84, s631, s632, 1 + p(0) + s633, 1 + s229 + s634, z'', s950) :|: s950 >= 0, s950 <= z'' + x'' + 1, s631 >= 0, s631 <= z, s632 >= 0, s632 <= z', s633 >= 0, s633 <= z, s634 >= 0, s634 <= z', s229 >= 0, s229 <= 0 + 1, s84 >= 0, s84 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 1, s85, s635, s636, 1 + p(0) + s637, 1 + s230 + s638, z'', s951) :|: s951 >= 0, s951 <= z'' + 0 + 1, s635 >= 0, s635 <= z, s636 >= 0, s636 <= z', s637 >= 0, s637 <= z, s638 >= 0, s638 <= z', s230 >= 0, s230 <= 0 + 1, s85 >= 0, s85 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(0, 1, s86, s639, s640, 1 + p(x') + s641, 1 + s231 + s642, z'', s952) :|: s952 >= 0, s952 <= z'' + x1 + 1, s639 >= 0, s639 <= z, s640 >= 0, s640 <= z', s641 >= 0, s641 <= z, s642 >= 0, s642 <= z', s231 >= 0, s231 <= x'' + 1, s86 >= 0, s86 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' + z'' }-> if(0, 1, s87, s643, s644, 1 + p(x') + s645, 1 + s232 + s646, z'', s953) :|: s953 >= 0, s953 <= z'' + 0 + 1, s643 >= 0, s643 <= z, s644 >= 0, s644 <= z', s645 >= 0, s645 <= z, s646 >= 0, s646 <= z', s232 >= 0, s232 <= x'' + 1, s87 >= 0, s87 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 1, s88, s647, s648, 1 + p(x') + s649, 1 + s233 + s650, z'', s954) :|: s954 >= 0, s954 <= z'' + x'' + 1, s647 >= 0, s647 <= z, s648 >= 0, s648 <= z', s649 >= 0, s649 <= z, s650 >= 0, s650 <= z', s233 >= 0, s233 <= 0 + 1, s88 >= 0, s88 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 1, s89, s651, s652, 1 + p(x') + s653, 1 + s234 + s654, z'', s955) :|: s955 >= 0, s955 <= z'' + 0 + 1, s651 >= 0, s651 <= z, s652 >= 0, s652 <= z', s653 >= 0, s653 <= z, s654 >= 0, s654 <= z', s234 >= 0, s234 <= 0 + 1, s89 >= 0, s89 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(0, 1, s90, s655, s656, 1 + p(0) + s657, 1 + s235 + s658, z'', s956) :|: s956 >= 0, s956 <= z'' + x'' + 1, s655 >= 0, s655 <= z, s656 >= 0, s656 <= z', s657 >= 0, s657 <= z, s658 >= 0, s658 <= z', s235 >= 0, s235 <= x' + 1, s90 >= 0, s90 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' + z'' }-> if(0, 1, s91, s659, s660, 1 + p(0) + s661, 1 + s236 + s662, z'', s957) :|: s957 >= 0, s957 <= z'' + 0 + 1, s659 >= 0, s659 <= z, s660 >= 0, s660 <= z', s661 >= 0, s661 <= z, s662 >= 0, s662 <= z', s236 >= 0, s236 <= x' + 1, s91 >= 0, s91 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 1, s92, s663, s664, 1 + p(0) + s665, 1 + s237 + s666, z'', s958) :|: s958 >= 0, s958 <= z'' + x' + 1, s663 >= 0, s663 <= z, s664 >= 0, s664 <= z', s665 >= 0, s665 <= z, s666 >= 0, s666 <= z', s237 >= 0, s237 <= 0 + 1, s92 >= 0, s92 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(0, 1, s93, s667, s668, 1 + p(0) + s669, 1 + s238 + s670, z'', s959) :|: s959 >= 0, s959 <= z'' + 0 + 1, s667 >= 0, s667 <= z, s668 >= 0, s668 <= z', s669 >= 0, s669 <= z, s670 >= 0, s670 <= z', s238 >= 0, s238 <= 0 + 1, s93 >= 0, s93 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 12 + x'' + z'' }-> if(0, 0, s62, s543, s544, 1 + p(x') + s545, 1 + s207 + s546, z'', s928) :|: s928 >= 0, s928 <= z'' + x1 + 1, s543 >= 0, s543 <= z, s544 >= 0, s544 <= z', s545 >= 0, s545 <= z, s546 >= 0, s546 <= z', s207 >= 0, s207 <= x'' + 1, s62 >= 0, s62 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 11 + x'' + z'' }-> if(0, 0, s63, s547, s548, 1 + p(x') + s549, 1 + s208 + s550, z'', s929) :|: s929 >= 0, s929 <= z'' + 0 + 1, s547 >= 0, s547 <= z, s548 >= 0, s548 <= z', s549 >= 0, s549 <= z, s550 >= 0, s550 <= z', s208 >= 0, s208 <= x'' + 1, s63 >= 0, s63 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 0, s64, s551, s552, 1 + p(x') + s553, 1 + s209 + s554, z'', s930) :|: s930 >= 0, s930 <= z'' + x'' + 1, s551 >= 0, s551 <= z, s552 >= 0, s552 <= z', s553 >= 0, s553 <= z, s554 >= 0, s554 <= z', s209 >= 0, s209 <= 0 + 1, s64 >= 0, s64 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 0, s65, s555, s556, 1 + p(x') + s557, 1 + s210 + s558, z'', s931) :|: s931 >= 0, s931 <= z'' + 0 + 1, s555 >= 0, s555 <= z, s556 >= 0, s556 <= z', s557 >= 0, s557 <= z, s558 >= 0, s558 <= z', s210 >= 0, s210 <= 0 + 1, s65 >= 0, s65 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(0, 0, s66, s559, s560, 1 + p(0) + s561, 1 + s211 + s562, z'', s932) :|: s932 >= 0, s932 <= z'' + x'' + 1, s559 >= 0, s559 <= z, s560 >= 0, s560 <= z', s561 >= 0, s561 <= z, s562 >= 0, s562 <= z', s211 >= 0, s211 <= x' + 1, s66 >= 0, s66 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' + z'' }-> if(0, 0, s67, s563, s564, 1 + p(0) + s565, 1 + s212 + s566, z'', s933) :|: s933 >= 0, s933 <= z'' + 0 + 1, s563 >= 0, s563 <= z, s564 >= 0, s564 <= z', s565 >= 0, s565 <= z, s566 >= 0, s566 <= z', s212 >= 0, s212 <= x' + 1, s67 >= 0, s67 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 0, s68, s567, s568, 1 + p(0) + s569, 1 + s213 + s570, z'', s934) :|: s934 >= 0, s934 <= z'' + x' + 1, s567 >= 0, s567 <= z, s568 >= 0, s568 <= z', s569 >= 0, s569 <= z, s570 >= 0, s570 <= z', s213 >= 0, s213 <= 0 + 1, s68 >= 0, s68 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(0, 0, s69, s571, s572, 1 + p(0) + s573, 1 + s214 + s574, z'', s935) :|: s935 >= 0, s935 <= z'' + 0 + 1, s571 >= 0, s571 <= z, s572 >= 0, s572 <= z', s573 >= 0, s573 <= z, s574 >= 0, s574 <= z', s214 >= 0, s214 <= 0 + 1, s69 >= 0, s69 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 11 + x' + z'' }-> if(0, 0, s70, s575, s576, 1 + p(x) + s577, 1 + s215 + s578, z'', s936) :|: s936 >= 0, s936 <= z'' + x'' + 1, s575 >= 0, s575 <= z, s576 >= 0, s576 <= z', s577 >= 0, s577 <= z, s578 >= 0, s578 <= z', s215 >= 0, s215 <= x' + 1, s70 >= 0, s70 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 10 + x' + z'' }-> if(0, 0, s71, s579, s580, 1 + p(x) + s581, 1 + s216 + s582, z'', s937) :|: s937 >= 0, s937 <= z'' + 0 + 1, s579 >= 0, s579 <= z, s580 >= 0, s580 <= z', s581 >= 0, s581 <= z, s582 >= 0, s582 <= z', s216 >= 0, s216 <= x' + 1, s71 >= 0, s71 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 0, s72, s583, s584, 1 + p(x) + s585, 1 + s217 + s586, z'', s938) :|: s938 >= 0, s938 <= z'' + x' + 1, s583 >= 0, s583 <= z, s584 >= 0, s584 <= z', s585 >= 0, s585 <= z, s586 >= 0, s586 <= z', s217 >= 0, s217 <= 0 + 1, s72 >= 0, s72 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(0, 0, s73, s587, s588, 1 + p(x) + s589, 1 + s218 + s590, z'', s939) :|: s939 >= 0, s939 <= z'' + 0 + 1, s587 >= 0, s587 <= z, s588 >= 0, s588 <= z', s589 >= 0, s589 <= z, s590 >= 0, s590 <= z', s218 >= 0, s218 <= 0 + 1, s73 >= 0, s73 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 10 + x + z'' }-> if(0, 0, s74, s591, s592, 1 + p(0) + s593, 1 + s219 + s594, z'', s940) :|: s940 >= 0, s940 <= z'' + x' + 1, s591 >= 0, s591 <= z, s592 >= 0, s592 <= z', s593 >= 0, s593 <= z, s594 >= 0, s594 <= z', s219 >= 0, s219 <= x + 1, s74 >= 0, s74 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 9 + x + z'' }-> if(0, 0, s75, s595, s596, 1 + p(0) + s597, 1 + s220 + s598, z'', s941) :|: s941 >= 0, s941 <= z'' + 0 + 1, s595 >= 0, s595 <= z, s596 >= 0, s596 <= z', s597 >= 0, s597 <= z, s598 >= 0, s598 <= z', s220 >= 0, s220 <= x + 1, s75 >= 0, s75 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 9 + z'' }-> if(0, 0, s76, s599, s600, 1 + p(0) + s601, 1 + s221 + s602, z'', s942) :|: s942 >= 0, s942 <= z'' + x + 1, s599 >= 0, s599 <= z, s600 >= 0, s600 <= z', s601 >= 0, s601 <= z, s602 >= 0, s602 <= z', s221 >= 0, s221 <= 0 + 1, s76 >= 0, s76 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 8 + z'' }-> if(0, 0, s77, s603, s604, 1 + p(0) + s605, 1 + s222 + s606, z'', s943) :|: s943 >= 0, s943 <= z'' + 0 + 1, s603 >= 0, s603 <= z, s604 >= 0, s604 <= z', s605 >= 0, s605 <= z, s606 >= 0, s606 <= z', s222 >= 0, s222 <= 0 + 1, s77 >= 0, s77 <= 2, z >= 0, z' >= 0, z'' >= 0 append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 append(z, z') -{ 2 + ys }-> 1 + y + s863 :|: s863 >= 0, s863 <= ys + z' + 1, ys >= 0, y >= 0, z' >= 0, z = 1 + y + ys append(z, z') -{ 1 }-> 1 + z' + 1 :|: z = 1, z' >= 0 head(z) -{ 1 }-> x :|: z = 1 + x + xs, xs >= 0, x >= 0 head(z) -{ 0 }-> 0 :|: z >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> z5 :|: z1 >= 0, z' = 2, z5 >= 0, z6 >= 0, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z1, z2, z6) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 2, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z3, z4, z5) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 1, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z5 >= 0, z6 >= 0, z' = 1, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z' = 2, z = 1, z5 >= 0, z6 >= 0, z4 >= 0, z'' >= 0, z3 >= 0, z2 >= 0 inc(z) -{ 1 + z }-> 1 + s142 :|: s142 >= 0, s142 <= z - 1 + 1, z - 1 >= 0 inc(z) -{ 1 }-> 1 + 0 :|: z = 0 isEmpty(z) -{ 1 }-> 2 :|: z = 1 isEmpty(z) -{ 1 }-> 1 :|: z = 1 + x + xs, xs >= 0, x >= 0 isEmpty(z) -{ 0 }-> 0 :|: z >= 0 isZero(z) -{ 1 }-> 2 :|: z = 0 isZero(z) -{ 1 }-> 1 :|: z - 1 >= 0 p(z) -{ 1 }-> 0 :|: z = 1 + 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 1 }-> 1 + p(1 + (z - 2)) :|: z - 2 >= 0 tail(z) -{ 1 }-> xs :|: z = 1 + x + xs, xs >= 0, x >= 0 tail(z) -{ 1 }-> 1 :|: z = 1 tail(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {addLists,if}, {addList} Previous analysis results are: isEmpty: runtime: O(1) [1], size: O(1) [2] isZero: runtime: O(1) [1], size: O(1) [2] inc: runtime: O(n^1) [1 + z], size: O(n^1) [1 + z] tail: runtime: O(1) [1], size: O(n^1) [z] append: runtime: O(n^1) [1 + z], size: O(n^1) [1 + z + z'] head: runtime: O(1) [1], size: O(n^1) [z] p: runtime: O(n^1) [2 + z], size: O(n^1) [z] ---------------------------------------- (63) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (64) Obligation: Complexity RNTS consisting of the following rules: addList(z, z') -{ 1 }-> addLists(z, z', 1) :|: z >= 0, z' >= 0 addLists(z, z', z'') -{ 16 + x' + x'' + z'' }-> if(2, 2, s, s287, s288, 1 + s1009 + s289, 1 + s143 + s290, z'', s864) :|: s1009 >= 0, s1009 <= x', s864 >= 0, s864 <= z'' + x1 + 1, s287 >= 0, s287 <= z, s288 >= 0, s288 <= z', s289 >= 0, s289 <= z, s290 >= 0, s290 <= z', s143 >= 0, s143 <= x'' + 1, s >= 0, s <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 15 + x' + x'' + z'' }-> if(2, 2, s', s291, s292, 1 + s1010 + s293, 1 + s144 + s294, z'', s865) :|: s1010 >= 0, s1010 <= x', s865 >= 0, s865 <= z'' + 0 + 1, s291 >= 0, s291 <= z, s292 >= 0, s292 <= z', s293 >= 0, s293 <= z, s294 >= 0, s294 <= z', s144 >= 0, s144 <= x'' + 1, s' >= 0, s' <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 15 + x' + z'' }-> if(2, 2, s'', s295, s296, 1 + s1011 + s297, 1 + s145 + s298, z'', s866) :|: s1011 >= 0, s1011 <= x', s866 >= 0, s866 <= z'' + x'' + 1, s295 >= 0, s295 <= z, s296 >= 0, s296 <= z', s297 >= 0, s297 <= z, s298 >= 0, s298 <= z', s145 >= 0, s145 <= 0 + 1, s'' >= 0, s'' <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 14 + x' + z'' }-> if(2, 2, s1, s299, s300, 1 + s1012 + s301, 1 + s146 + s302, z'', s867) :|: s1012 >= 0, s1012 <= x', s867 >= 0, s867 <= z'' + 0 + 1, s299 >= 0, s299 <= z, s300 >= 0, s300 <= z', s301 >= 0, s301 <= z, s302 >= 0, s302 <= z', s146 >= 0, s146 <= 0 + 1, s1 >= 0, s1 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 14 + x + z'' }-> if(2, 2, s10, s335, s336, 1 + s1021 + s337, 1 + s155 + s338, z'', s876) :|: s1021 >= 0, s1021 <= 0, s876 >= 0, s876 <= z'' + x' + 1, s335 >= 0, s335 <= z, s336 >= 0, s336 <= z', s337 >= 0, s337 <= z, s338 >= 0, s338 <= z', s155 >= 0, s155 <= x + 1, s10 >= 0, s10 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 13 + x + z'' }-> if(2, 2, s11, s339, s340, 1 + s1022 + s341, 1 + s156 + s342, z'', s877) :|: s1022 >= 0, s1022 <= 0, s877 >= 0, s877 <= z'' + 0 + 1, s339 >= 0, s339 <= z, s340 >= 0, s340 <= z', s341 >= 0, s341 <= z, s342 >= 0, s342 <= z', s156 >= 0, s156 <= x + 1, s11 >= 0, s11 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 13 + z'' }-> if(2, 2, s12, s343, s344, 1 + s1023 + s345, 1 + s157 + s346, z'', s878) :|: s1023 >= 0, s1023 <= 0, s878 >= 0, s878 <= z'' + x + 1, s343 >= 0, s343 <= z, s344 >= 0, s344 <= z', s345 >= 0, s345 <= z, s346 >= 0, s346 <= z', s157 >= 0, s157 <= 0 + 1, s12 >= 0, s12 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 2, s13, s347, s348, 1 + s1024 + s349, 1 + s158 + s350, z'', s879) :|: s1024 >= 0, s1024 <= 0, s879 >= 0, s879 <= z'' + 0 + 1, s347 >= 0, s347 <= z, s348 >= 0, s348 <= z', s349 >= 0, s349 <= z, s350 >= 0, s350 <= z', s158 >= 0, s158 <= 0 + 1, s13 >= 0, s13 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 addLists(z, z', z'') -{ 15 + x' + z'' }-> if(2, 2, s2, s303, s304, 1 + s1013 + s305, 1 + s147 + s306, z'', s868) :|: s1013 >= 0, s1013 <= 0, s868 >= 0, s868 <= z'' + x'' + 1, s303 >= 0, s303 <= z, s304 >= 0, s304 <= z', s305 >= 0, s305 <= z, s306 >= 0, s306 <= z', s147 >= 0, s147 <= x' + 1, s2 >= 0, s2 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 14 + x' + z'' }-> if(2, 2, s3, s307, s308, 1 + s1014 + s309, 1 + s148 + s310, z'', s869) :|: s1014 >= 0, s1014 <= 0, s869 >= 0, s869 <= z'' + 0 + 1, s307 >= 0, s307 <= z, s308 >= 0, s308 <= z', s309 >= 0, s309 <= z, s310 >= 0, s310 <= z', s148 >= 0, s148 <= x' + 1, s3 >= 0, s3 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 14 + z'' }-> if(2, 2, s4, s311, s312, 1 + s1015 + s313, 1 + s149 + s314, z'', s870) :|: s1015 >= 0, s1015 <= 0, s870 >= 0, s870 <= z'' + x' + 1, s311 >= 0, s311 <= z, s312 >= 0, s312 <= z', s313 >= 0, s313 <= z, s314 >= 0, s314 <= z', s149 >= 0, s149 <= 0 + 1, s4 >= 0, s4 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 13 + z'' }-> if(2, 2, s5, s315, s316, 1 + s1016 + s317, 1 + s150 + s318, z'', s871) :|: s1016 >= 0, s1016 <= 0, s871 >= 0, s871 <= z'' + 0 + 1, s315 >= 0, s315 <= z, s316 >= 0, s316 <= z', s317 >= 0, s317 <= z, s318 >= 0, s318 <= z', s150 >= 0, s150 <= 0 + 1, s5 >= 0, s5 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 15 + x + x' + z'' }-> if(2, 2, s6, s319, s320, 1 + s1017 + s321, 1 + s151 + s322, z'', s872) :|: s1017 >= 0, s1017 <= x, s872 >= 0, s872 <= z'' + x'' + 1, s319 >= 0, s319 <= z, s320 >= 0, s320 <= z', s321 >= 0, s321 <= z, s322 >= 0, s322 <= z', s151 >= 0, s151 <= x' + 1, s6 >= 0, s6 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 14 + x + x' + z'' }-> if(2, 2, s7, s323, s324, 1 + s1018 + s325, 1 + s152 + s326, z'', s873) :|: s1018 >= 0, s1018 <= x, s873 >= 0, s873 <= z'' + 0 + 1, s323 >= 0, s323 <= z, s324 >= 0, s324 <= z', s325 >= 0, s325 <= z, s326 >= 0, s326 <= z', s152 >= 0, s152 <= x' + 1, s7 >= 0, s7 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 14 + x + z'' }-> if(2, 2, s8, s327, s328, 1 + s1019 + s329, 1 + s153 + s330, z'', s874) :|: s1019 >= 0, s1019 <= x, s874 >= 0, s874 <= z'' + x' + 1, s327 >= 0, s327 <= z, s328 >= 0, s328 <= z', s329 >= 0, s329 <= z, s330 >= 0, s330 <= z', s153 >= 0, s153 <= 0 + 1, s8 >= 0, s8 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 13 + x + z'' }-> if(2, 2, s9, s331, s332, 1 + s1020 + s333, 1 + s154 + s334, z'', s875) :|: s1020 >= 0, s1020 <= x, s875 >= 0, s875 <= z'' + 0 + 1, s331 >= 0, s331 <= z, s332 >= 0, s332 <= z', s333 >= 0, s333 <= z, s334 >= 0, s334 <= z', s154 >= 0, s154 <= 0 + 1, s9 >= 0, s9 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 16 + x'' + x1 + z'' }-> if(2, 1, s30, s415, s416, 1 + s1041 + s417, 1 + s175 + s418, z'', s896) :|: s1041 >= 0, s1041 <= x'', s896 >= 0, s896 <= z'' + x2 + 1, s415 >= 0, s415 <= z, s416 >= 0, s416 <= z', s417 >= 0, s417 <= z, s418 >= 0, s418 <= z', s175 >= 0, s175 <= x1 + 1, s30 >= 0, s30 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 15 + x'' + x1 + z'' }-> if(2, 1, s31, s419, s420, 1 + s1042 + s421, 1 + s176 + s422, z'', s897) :|: s1042 >= 0, s1042 <= x'', s897 >= 0, s897 <= z'' + 0 + 1, s419 >= 0, s419 <= z, s420 >= 0, s420 <= z', s421 >= 0, s421 <= z, s422 >= 0, s422 <= z', s176 >= 0, s176 <= x1 + 1, s31 >= 0, s31 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 15 + x'' + z'' }-> if(2, 1, s32, s423, s424, 1 + s1043 + s425, 1 + s177 + s426, z'', s898) :|: s1043 >= 0, s1043 <= x'', s898 >= 0, s898 <= z'' + x1 + 1, s423 >= 0, s423 <= z, s424 >= 0, s424 <= z', s425 >= 0, s425 <= z, s426 >= 0, s426 <= z', s177 >= 0, s177 <= 0 + 1, s32 >= 0, s32 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 14 + x'' + z'' }-> if(2, 1, s33, s427, s428, 1 + s1044 + s429, 1 + s178 + s430, z'', s899) :|: s1044 >= 0, s1044 <= x'', s899 >= 0, s899 <= z'' + 0 + 1, s427 >= 0, s427 <= z, s428 >= 0, s428 <= z', s429 >= 0, s429 <= z, s430 >= 0, s430 <= z', s178 >= 0, s178 <= 0 + 1, s33 >= 0, s33 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 15 + x'' + z'' }-> if(2, 1, s34, s431, s432, 1 + s1045 + s433, 1 + s179 + s434, z'', s900) :|: s1045 >= 0, s1045 <= 0, s900 >= 0, s900 <= z'' + x1 + 1, s431 >= 0, s431 <= z, s432 >= 0, s432 <= z', s433 >= 0, s433 <= z, s434 >= 0, s434 <= z', s179 >= 0, s179 <= x'' + 1, s34 >= 0, s34 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 14 + x'' + z'' }-> if(2, 1, s35, s435, s436, 1 + s1046 + s437, 1 + s180 + s438, z'', s901) :|: s1046 >= 0, s1046 <= 0, s901 >= 0, s901 <= z'' + 0 + 1, s435 >= 0, s435 <= z, s436 >= 0, s436 <= z', s437 >= 0, s437 <= z, s438 >= 0, s438 <= z', s180 >= 0, s180 <= x'' + 1, s35 >= 0, s35 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 14 + z'' }-> if(2, 1, s36, s439, s440, 1 + s1047 + s441, 1 + s181 + s442, z'', s902) :|: s1047 >= 0, s1047 <= 0, s902 >= 0, s902 <= z'' + x'' + 1, s439 >= 0, s439 <= z, s440 >= 0, s440 <= z', s441 >= 0, s441 <= z, s442 >= 0, s442 <= z', s181 >= 0, s181 <= 0 + 1, s36 >= 0, s36 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + z'' }-> if(2, 1, s37, s443, s444, 1 + s1048 + s445, 1 + s182 + s446, z'', s903) :|: s1048 >= 0, s1048 <= 0, s903 >= 0, s903 <= z'' + 0 + 1, s443 >= 0, s443 <= z, s444 >= 0, s444 <= z', s445 >= 0, s445 <= z, s446 >= 0, s446 <= z', s182 >= 0, s182 <= 0 + 1, s37 >= 0, s37 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 15 + x' + x'' + z'' }-> if(2, 1, s38, s447, s448, 1 + s1049 + s449, 1 + s183 + s450, z'', s904) :|: s1049 >= 0, s1049 <= x', s904 >= 0, s904 <= z'' + x1 + 1, s447 >= 0, s447 <= z, s448 >= 0, s448 <= z', s449 >= 0, s449 <= z, s450 >= 0, s450 <= z', s183 >= 0, s183 <= x'' + 1, s38 >= 0, s38 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 14 + x' + x'' + z'' }-> if(2, 1, s39, s451, s452, 1 + s1050 + s453, 1 + s184 + s454, z'', s905) :|: s1050 >= 0, s1050 <= x', s905 >= 0, s905 <= z'' + 0 + 1, s451 >= 0, s451 <= z, s452 >= 0, s452 <= z', s453 >= 0, s453 <= z, s454 >= 0, s454 <= z', s184 >= 0, s184 <= x'' + 1, s39 >= 0, s39 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 14 + x' + z'' }-> if(2, 1, s40, s455, s456, 1 + s1051 + s457, 1 + s185 + s458, z'', s906) :|: s1051 >= 0, s1051 <= x', s906 >= 0, s906 <= z'' + x'' + 1, s455 >= 0, s455 <= z, s456 >= 0, s456 <= z', s457 >= 0, s457 <= z, s458 >= 0, s458 <= z', s185 >= 0, s185 <= 0 + 1, s40 >= 0, s40 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + x' + z'' }-> if(2, 1, s41, s459, s460, 1 + s1052 + s461, 1 + s186 + s462, z'', s907) :|: s1052 >= 0, s1052 <= x', s907 >= 0, s907 <= z'' + 0 + 1, s459 >= 0, s459 <= z, s460 >= 0, s460 <= z', s461 >= 0, s461 <= z, s462 >= 0, s462 <= z', s186 >= 0, s186 <= 0 + 1, s41 >= 0, s41 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 14 + x' + z'' }-> if(2, 1, s42, s463, s464, 1 + s1053 + s465, 1 + s187 + s466, z'', s908) :|: s1053 >= 0, s1053 <= 0, s908 >= 0, s908 <= z'' + x'' + 1, s463 >= 0, s463 <= z, s464 >= 0, s464 <= z', s465 >= 0, s465 <= z, s466 >= 0, s466 <= z', s187 >= 0, s187 <= x' + 1, s42 >= 0, s42 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + x' + z'' }-> if(2, 1, s43, s467, s468, 1 + s1054 + s469, 1 + s188 + s470, z'', s909) :|: s1054 >= 0, s1054 <= 0, s909 >= 0, s909 <= z'' + 0 + 1, s467 >= 0, s467 <= z, s468 >= 0, s468 <= z', s469 >= 0, s469 <= z, s470 >= 0, s470 <= z', s188 >= 0, s188 <= x' + 1, s43 >= 0, s43 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 13 + z'' }-> if(2, 1, s44, s471, s472, 1 + s1055 + s473, 1 + s189 + s474, z'', s910) :|: s1055 >= 0, s1055 <= 0, s910 >= 0, s910 <= z'' + x' + 1, s471 >= 0, s471 <= z, s472 >= 0, s472 <= z', s473 >= 0, s473 <= z, s474 >= 0, s474 <= z', s189 >= 0, s189 <= 0 + 1, s44 >= 0, s44 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 1, s45, s475, s476, 1 + s1056 + s477, 1 + s190 + s478, z'', s911) :|: s1056 >= 0, s1056 <= 0, s911 >= 0, s911 <= z'' + 0 + 1, s475 >= 0, s475 <= z, s476 >= 0, s476 <= z', s477 >= 0, s477 <= z, s478 >= 0, s478 <= z', s190 >= 0, s190 <= 0 + 1, s45 >= 0, s45 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 15 + x' + x'' + z'' }-> if(2, 0, s14, s351, s352, 1 + s1025 + s353, 1 + s159 + s354, z'', s880) :|: s1025 >= 0, s1025 <= x', s880 >= 0, s880 <= z'' + x1 + 1, s351 >= 0, s351 <= z, s352 >= 0, s352 <= z', s353 >= 0, s353 <= z, s354 >= 0, s354 <= z', s159 >= 0, s159 <= x'' + 1, s14 >= 0, s14 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 14 + x' + x'' + z'' }-> if(2, 0, s15, s355, s356, 1 + s1026 + s357, 1 + s160 + s358, z'', s881) :|: s1026 >= 0, s1026 <= x', s881 >= 0, s881 <= z'' + 0 + 1, s355 >= 0, s355 <= z, s356 >= 0, s356 <= z', s357 >= 0, s357 <= z, s358 >= 0, s358 <= z', s160 >= 0, s160 <= x'' + 1, s15 >= 0, s15 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 14 + x' + z'' }-> if(2, 0, s16, s359, s360, 1 + s1027 + s361, 1 + s161 + s362, z'', s882) :|: s1027 >= 0, s1027 <= x', s882 >= 0, s882 <= z'' + x'' + 1, s359 >= 0, s359 <= z, s360 >= 0, s360 <= z', s361 >= 0, s361 <= z, s362 >= 0, s362 <= z', s161 >= 0, s161 <= 0 + 1, s16 >= 0, s16 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + x' + z'' }-> if(2, 0, s17, s363, s364, 1 + s1028 + s365, 1 + s162 + s366, z'', s883) :|: s1028 >= 0, s1028 <= x', s883 >= 0, s883 <= z'' + 0 + 1, s363 >= 0, s363 <= z, s364 >= 0, s364 <= z', s365 >= 0, s365 <= z, s366 >= 0, s366 <= z', s162 >= 0, s162 <= 0 + 1, s17 >= 0, s17 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 14 + x' + z'' }-> if(2, 0, s18, s367, s368, 1 + s1029 + s369, 1 + s163 + s370, z'', s884) :|: s1029 >= 0, s1029 <= 0, s884 >= 0, s884 <= z'' + x'' + 1, s367 >= 0, s367 <= z, s368 >= 0, s368 <= z', s369 >= 0, s369 <= z, s370 >= 0, s370 <= z', s163 >= 0, s163 <= x' + 1, s18 >= 0, s18 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + x' + z'' }-> if(2, 0, s19, s371, s372, 1 + s1030 + s373, 1 + s164 + s374, z'', s885) :|: s1030 >= 0, s1030 <= 0, s885 >= 0, s885 <= z'' + 0 + 1, s371 >= 0, s371 <= z, s372 >= 0, s372 <= z', s373 >= 0, s373 <= z, s374 >= 0, s374 <= z', s164 >= 0, s164 <= x' + 1, s19 >= 0, s19 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 13 + z'' }-> if(2, 0, s20, s375, s376, 1 + s1031 + s377, 1 + s165 + s378, z'', s886) :|: s1031 >= 0, s1031 <= 0, s886 >= 0, s886 <= z'' + x' + 1, s375 >= 0, s375 <= z, s376 >= 0, s376 <= z', s377 >= 0, s377 <= z, s378 >= 0, s378 <= z', s165 >= 0, s165 <= 0 + 1, s20 >= 0, s20 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 0, s21, s379, s380, 1 + s1032 + s381, 1 + s166 + s382, z'', s887) :|: s1032 >= 0, s1032 <= 0, s887 >= 0, s887 <= z'' + 0 + 1, s379 >= 0, s379 <= z, s380 >= 0, s380 <= z', s381 >= 0, s381 <= z, s382 >= 0, s382 <= z', s166 >= 0, s166 <= 0 + 1, s21 >= 0, s21 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 14 + x + x' + z'' }-> if(2, 0, s22, s383, s384, 1 + s1033 + s385, 1 + s167 + s386, z'', s888) :|: s1033 >= 0, s1033 <= x, s888 >= 0, s888 <= z'' + x'' + 1, s383 >= 0, s383 <= z, s384 >= 0, s384 <= z', s385 >= 0, s385 <= z, s386 >= 0, s386 <= z', s167 >= 0, s167 <= x' + 1, s22 >= 0, s22 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + x + x' + z'' }-> if(2, 0, s23, s387, s388, 1 + s1034 + s389, 1 + s168 + s390, z'', s889) :|: s1034 >= 0, s1034 <= x, s889 >= 0, s889 <= z'' + 0 + 1, s387 >= 0, s387 <= z, s388 >= 0, s388 <= z', s389 >= 0, s389 <= z, s390 >= 0, s390 <= z', s168 >= 0, s168 <= x' + 1, s23 >= 0, s23 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 13 + x + z'' }-> if(2, 0, s24, s391, s392, 1 + s1035 + s393, 1 + s169 + s394, z'', s890) :|: s1035 >= 0, s1035 <= x, s890 >= 0, s890 <= z'' + x' + 1, s391 >= 0, s391 <= z, s392 >= 0, s392 <= z', s393 >= 0, s393 <= z, s394 >= 0, s394 <= z', s169 >= 0, s169 <= 0 + 1, s24 >= 0, s24 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x + z'' }-> if(2, 0, s25, s395, s396, 1 + s1036 + s397, 1 + s170 + s398, z'', s891) :|: s1036 >= 0, s1036 <= x, s891 >= 0, s891 <= z'' + 0 + 1, s395 >= 0, s395 <= z, s396 >= 0, s396 <= z', s397 >= 0, s397 <= z, s398 >= 0, s398 <= z', s170 >= 0, s170 <= 0 + 1, s25 >= 0, s25 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 13 + x + z'' }-> if(2, 0, s26, s399, s400, 1 + s1037 + s401, 1 + s171 + s402, z'', s892) :|: s1037 >= 0, s1037 <= 0, s892 >= 0, s892 <= z'' + x' + 1, s399 >= 0, s399 <= z, s400 >= 0, s400 <= z', s401 >= 0, s401 <= z, s402 >= 0, s402 <= z', s171 >= 0, s171 <= x + 1, s26 >= 0, s26 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x + z'' }-> if(2, 0, s27, s403, s404, 1 + s1038 + s405, 1 + s172 + s406, z'', s893) :|: s1038 >= 0, s1038 <= 0, s893 >= 0, s893 <= z'' + 0 + 1, s403 >= 0, s403 <= z, s404 >= 0, s404 <= z', s405 >= 0, s405 <= z, s406 >= 0, s406 <= z', s172 >= 0, s172 <= x + 1, s27 >= 0, s27 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(2, 0, s28, s407, s408, 1 + s1039 + s409, 1 + s173 + s410, z'', s894) :|: s1039 >= 0, s1039 <= 0, s894 >= 0, s894 <= z'' + x + 1, s407 >= 0, s407 <= z, s408 >= 0, s408 <= z', s409 >= 0, s409 <= z, s410 >= 0, s410 <= z', s173 >= 0, s173 <= 0 + 1, s28 >= 0, s28 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(2, 0, s29, s411, s412, 1 + s1040 + s413, 1 + s174 + s414, z'', s895) :|: s1040 >= 0, s1040 <= 0, s895 >= 0, s895 <= z'' + 0 + 1, s411 >= 0, s411 <= z, s412 >= 0, s412 <= z', s413 >= 0, s413 <= z, s414 >= 0, s414 <= z', s174 >= 0, s174 <= 0 + 1, s29 >= 0, s29 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 addLists(z, z', z'') -{ 14 + z'' }-> if(1, 2, s100, s695, s696, 1 + s1111 + s697, 1 + s245 + s698, z'', s966) :|: s1111 >= 0, s1111 <= 0, s966 >= 0, s966 <= z'' + x'' + 1, s695 >= 0, s695 <= z, s696 >= 0, s696 <= z', s697 >= 0, s697 <= z, s698 >= 0, s698 <= z', s245 >= 0, s245 <= 0 + 1, s100 >= 0, s100 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + z'' }-> if(1, 2, s101, s699, s700, 1 + s1112 + s701, 1 + s246 + s702, z'', s967) :|: s1112 >= 0, s1112 <= 0, s967 >= 0, s967 <= z'' + 0 + 1, s699 >= 0, s699 <= z, s700 >= 0, s700 <= z', s701 >= 0, s701 <= z, s702 >= 0, s702 <= z', s246 >= 0, s246 <= 0 + 1, s101 >= 0, s101 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 15 + x' + x'' + z'' }-> if(1, 2, s102, s703, s704, 1 + s1113 + s705, 1 + s247 + s706, z'', s968) :|: s1113 >= 0, s1113 <= x', s968 >= 0, s968 <= z'' + x1 + 1, s703 >= 0, s703 <= z, s704 >= 0, s704 <= z', s705 >= 0, s705 <= z, s706 >= 0, s706 <= z', s247 >= 0, s247 <= x'' + 1, s102 >= 0, s102 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 14 + x' + x'' + z'' }-> if(1, 2, s103, s707, s708, 1 + s1114 + s709, 1 + s248 + s710, z'', s969) :|: s1114 >= 0, s1114 <= x', s969 >= 0, s969 <= z'' + 0 + 1, s707 >= 0, s707 <= z, s708 >= 0, s708 <= z', s709 >= 0, s709 <= z, s710 >= 0, s710 <= z', s248 >= 0, s248 <= x'' + 1, s103 >= 0, s103 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 14 + x' + z'' }-> if(1, 2, s104, s711, s712, 1 + s1115 + s713, 1 + s249 + s714, z'', s970) :|: s1115 >= 0, s1115 <= x', s970 >= 0, s970 <= z'' + x'' + 1, s711 >= 0, s711 <= z, s712 >= 0, s712 <= z', s713 >= 0, s713 <= z, s714 >= 0, s714 <= z', s249 >= 0, s249 <= 0 + 1, s104 >= 0, s104 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + x' + z'' }-> if(1, 2, s105, s715, s716, 1 + s1116 + s717, 1 + s250 + s718, z'', s971) :|: s1116 >= 0, s1116 <= x', s971 >= 0, s971 <= z'' + 0 + 1, s715 >= 0, s715 <= z, s716 >= 0, s716 <= z', s717 >= 0, s717 <= z, s718 >= 0, s718 <= z', s250 >= 0, s250 <= 0 + 1, s105 >= 0, s105 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 14 + x' + z'' }-> if(1, 2, s106, s719, s720, 1 + s1117 + s721, 1 + s251 + s722, z'', s972) :|: s1117 >= 0, s1117 <= 0, s972 >= 0, s972 <= z'' + x'' + 1, s719 >= 0, s719 <= z, s720 >= 0, s720 <= z', s721 >= 0, s721 <= z, s722 >= 0, s722 <= z', s251 >= 0, s251 <= x' + 1, s106 >= 0, s106 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + x' + z'' }-> if(1, 2, s107, s723, s724, 1 + s1118 + s725, 1 + s252 + s726, z'', s973) :|: s1118 >= 0, s1118 <= 0, s973 >= 0, s973 <= z'' + 0 + 1, s723 >= 0, s723 <= z, s724 >= 0, s724 <= z', s725 >= 0, s725 <= z, s726 >= 0, s726 <= z', s252 >= 0, s252 <= x' + 1, s107 >= 0, s107 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 13 + z'' }-> if(1, 2, s108, s727, s728, 1 + s1119 + s729, 1 + s253 + s730, z'', s974) :|: s1119 >= 0, s1119 <= 0, s974 >= 0, s974 <= z'' + x' + 1, s727 >= 0, s727 <= z, s728 >= 0, s728 <= z', s729 >= 0, s729 <= z, s730 >= 0, s730 <= z', s253 >= 0, s253 <= 0 + 1, s108 >= 0, s108 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 2, s109, s731, s732, 1 + s1120 + s733, 1 + s254 + s734, z'', s975) :|: s1120 >= 0, s1120 <= 0, s975 >= 0, s975 <= z'' + 0 + 1, s731 >= 0, s731 <= z, s732 >= 0, s732 <= z', s733 >= 0, s733 <= z, s734 >= 0, s734 <= z', s254 >= 0, s254 <= 0 + 1, s109 >= 0, s109 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 addLists(z, z', z'') -{ 16 + x'' + x1 + z'' }-> if(1, 2, s94, s671, s672, 1 + s1105 + s673, 1 + s239 + s674, z'', s960) :|: s1105 >= 0, s1105 <= x'', s960 >= 0, s960 <= z'' + x2 + 1, s671 >= 0, s671 <= z, s672 >= 0, s672 <= z', s673 >= 0, s673 <= z, s674 >= 0, s674 <= z', s239 >= 0, s239 <= x1 + 1, s94 >= 0, s94 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 15 + x'' + x1 + z'' }-> if(1, 2, s95, s675, s676, 1 + s1106 + s677, 1 + s240 + s678, z'', s961) :|: s1106 >= 0, s1106 <= x'', s961 >= 0, s961 <= z'' + 0 + 1, s675 >= 0, s675 <= z, s676 >= 0, s676 <= z', s677 >= 0, s677 <= z, s678 >= 0, s678 <= z', s240 >= 0, s240 <= x1 + 1, s95 >= 0, s95 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 15 + x'' + z'' }-> if(1, 2, s96, s679, s680, 1 + s1107 + s681, 1 + s241 + s682, z'', s962) :|: s1107 >= 0, s1107 <= x'', s962 >= 0, s962 <= z'' + x1 + 1, s679 >= 0, s679 <= z, s680 >= 0, s680 <= z', s681 >= 0, s681 <= z, s682 >= 0, s682 <= z', s241 >= 0, s241 <= 0 + 1, s96 >= 0, s96 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 14 + x'' + z'' }-> if(1, 2, s97, s683, s684, 1 + s1108 + s685, 1 + s242 + s686, z'', s963) :|: s1108 >= 0, s1108 <= x'', s963 >= 0, s963 <= z'' + 0 + 1, s683 >= 0, s683 <= z, s684 >= 0, s684 <= z', s685 >= 0, s685 <= z, s686 >= 0, s686 <= z', s242 >= 0, s242 <= 0 + 1, s97 >= 0, s97 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 15 + x'' + z'' }-> if(1, 2, s98, s687, s688, 1 + s1109 + s689, 1 + s243 + s690, z'', s964) :|: s1109 >= 0, s1109 <= 0, s964 >= 0, s964 <= z'' + x1 + 1, s687 >= 0, s687 <= z, s688 >= 0, s688 <= z', s689 >= 0, s689 <= z, s690 >= 0, s690 <= z', s243 >= 0, s243 <= x'' + 1, s98 >= 0, s98 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 14 + x'' + z'' }-> if(1, 2, s99, s691, s692, 1 + s1110 + s693, 1 + s244 + s694, z'', s965) :|: s1110 >= 0, s1110 <= 0, s965 >= 0, s965 <= z'' + 0 + 1, s691 >= 0, s691 <= z, s692 >= 0, s692 <= z', s693 >= 0, s693 <= z, s694 >= 0, s694 <= z', s244 >= 0, s244 <= x'' + 1, s99 >= 0, s99 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 16 + x1 + x2 + z'' }-> if(1, 1, s126, s799, s800, 1 + s1137 + s801, 1 + s271 + s802, z'', s992) :|: s1137 >= 0, s1137 <= x1, s992 >= 0, s992 <= z'' + x3 + 1, s799 >= 0, s799 <= z, s800 >= 0, s800 <= z', s801 >= 0, s801 <= z, s802 >= 0, s802 <= z', s271 >= 0, s271 <= x2 + 1, s126 >= 0, s126 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0, z' = 1 + x3 + xs4, xs4 >= 0, x3 >= 0 addLists(z, z', z'') -{ 15 + x1 + x2 + z'' }-> if(1, 1, s127, s803, s804, 1 + s1138 + s805, 1 + s272 + s806, z'', s993) :|: s1138 >= 0, s1138 <= x1, s993 >= 0, s993 <= z'' + 0 + 1, s803 >= 0, s803 <= z, s804 >= 0, s804 <= z', s805 >= 0, s805 <= z, s806 >= 0, s806 <= z', s272 >= 0, s272 <= x2 + 1, s127 >= 0, s127 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 15 + x1 + z'' }-> if(1, 1, s128, s807, s808, 1 + s1139 + s809, 1 + s273 + s810, z'', s994) :|: s1139 >= 0, s1139 <= x1, s994 >= 0, s994 <= z'' + x2 + 1, s807 >= 0, s807 <= z, s808 >= 0, s808 <= z', s809 >= 0, s809 <= z, s810 >= 0, s810 <= z', s273 >= 0, s273 <= 0 + 1, s128 >= 0, s128 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 14 + x1 + z'' }-> if(1, 1, s129, s811, s812, 1 + s1140 + s813, 1 + s274 + s814, z'', s995) :|: s1140 >= 0, s1140 <= x1, s995 >= 0, s995 <= z'' + 0 + 1, s811 >= 0, s811 <= z, s812 >= 0, s812 <= z', s813 >= 0, s813 <= z, s814 >= 0, s814 <= z', s274 >= 0, s274 <= 0 + 1, s129 >= 0, s129 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 15 + x1 + z'' }-> if(1, 1, s130, s815, s816, 1 + s1141 + s817, 1 + s275 + s818, z'', s996) :|: s1141 >= 0, s1141 <= 0, s996 >= 0, s996 <= z'' + x2 + 1, s815 >= 0, s815 <= z, s816 >= 0, s816 <= z', s817 >= 0, s817 <= z, s818 >= 0, s818 <= z', s275 >= 0, s275 <= x1 + 1, s130 >= 0, s130 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 14 + x1 + z'' }-> if(1, 1, s131, s819, s820, 1 + s1142 + s821, 1 + s276 + s822, z'', s997) :|: s1142 >= 0, s1142 <= 0, s997 >= 0, s997 <= z'' + 0 + 1, s819 >= 0, s819 <= z, s820 >= 0, s820 <= z', s821 >= 0, s821 <= z, s822 >= 0, s822 <= z', s276 >= 0, s276 <= x1 + 1, s131 >= 0, s131 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 14 + z'' }-> if(1, 1, s132, s823, s824, 1 + s1143 + s825, 1 + s277 + s826, z'', s998) :|: s1143 >= 0, s1143 <= 0, s998 >= 0, s998 <= z'' + x1 + 1, s823 >= 0, s823 <= z, s824 >= 0, s824 <= z', s825 >= 0, s825 <= z, s826 >= 0, s826 <= z', s277 >= 0, s277 <= 0 + 1, s132 >= 0, s132 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 13 + z'' }-> if(1, 1, s133, s827, s828, 1 + s1144 + s829, 1 + s278 + s830, z'', s999) :|: s1144 >= 0, s1144 <= 0, s999 >= 0, s999 <= z'' + 0 + 1, s827 >= 0, s827 <= z, s828 >= 0, s828 <= z', s829 >= 0, s829 <= z, s830 >= 0, s830 <= z', s278 >= 0, s278 <= 0 + 1, s133 >= 0, s133 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 15 + x'' + x1 + z'' }-> if(1, 1, s134, s831, s832, 1 + s1145 + s833, 1 + s279 + s834, z'', s1000) :|: s1145 >= 0, s1145 <= x'', s1000 >= 0, s1000 <= z'' + x2 + 1, s831 >= 0, s831 <= z, s832 >= 0, s832 <= z', s833 >= 0, s833 <= z, s834 >= 0, s834 <= z', s279 >= 0, s279 <= x1 + 1, s134 >= 0, s134 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 14 + x'' + x1 + z'' }-> if(1, 1, s135, s835, s836, 1 + s1146 + s837, 1 + s280 + s838, z'', s1001) :|: s1146 >= 0, s1146 <= x'', s1001 >= 0, s1001 <= z'' + 0 + 1, s835 >= 0, s835 <= z, s836 >= 0, s836 <= z', s837 >= 0, s837 <= z, s838 >= 0, s838 <= z', s280 >= 0, s280 <= x1 + 1, s135 >= 0, s135 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 14 + x'' + z'' }-> if(1, 1, s136, s839, s840, 1 + s1147 + s841, 1 + s281 + s842, z'', s1002) :|: s1147 >= 0, s1147 <= x'', s1002 >= 0, s1002 <= z'' + x1 + 1, s839 >= 0, s839 <= z, s840 >= 0, s840 <= z', s841 >= 0, s841 <= z, s842 >= 0, s842 <= z', s281 >= 0, s281 <= 0 + 1, s136 >= 0, s136 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(1, 1, s137, s843, s844, 1 + s1148 + s845, 1 + s282 + s846, z'', s1003) :|: s1148 >= 0, s1148 <= x'', s1003 >= 0, s1003 <= z'' + 0 + 1, s843 >= 0, s843 <= z, s844 >= 0, s844 <= z', s845 >= 0, s845 <= z, s846 >= 0, s846 <= z', s282 >= 0, s282 <= 0 + 1, s137 >= 0, s137 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 14 + x'' + z'' }-> if(1, 1, s138, s847, s848, 1 + s1149 + s849, 1 + s283 + s850, z'', s1004) :|: s1149 >= 0, s1149 <= 0, s1004 >= 0, s1004 <= z'' + x1 + 1, s847 >= 0, s847 <= z, s848 >= 0, s848 <= z', s849 >= 0, s849 <= z, s850 >= 0, s850 <= z', s283 >= 0, s283 <= x'' + 1, s138 >= 0, s138 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(1, 1, s139, s851, s852, 1 + s1150 + s853, 1 + s284 + s854, z'', s1005) :|: s1150 >= 0, s1150 <= 0, s1005 >= 0, s1005 <= z'' + 0 + 1, s851 >= 0, s851 <= z, s852 >= 0, s852 <= z', s853 >= 0, s853 <= z, s854 >= 0, s854 <= z', s284 >= 0, s284 <= x'' + 1, s139 >= 0, s139 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + z'' }-> if(1, 1, s140, s855, s856, 1 + s1151 + s857, 1 + s285 + s858, z'', s1006) :|: s1151 >= 0, s1151 <= 0, s1006 >= 0, s1006 <= z'' + x'' + 1, s855 >= 0, s855 <= z, s856 >= 0, s856 <= z', s857 >= 0, s857 <= z, s858 >= 0, s858 <= z', s285 >= 0, s285 <= 0 + 1, s140 >= 0, s140 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 1, s141, s859, s860, 1 + s1152 + s861, 1 + s286 + s862, z'', s1007) :|: s1152 >= 0, s1152 <= 0, s1007 >= 0, s1007 <= z'' + 0 + 1, s859 >= 0, s859 <= z, s860 >= 0, s860 <= z', s861 >= 0, s861 <= z, s862 >= 0, s862 <= z', s286 >= 0, s286 <= 0 + 1, s141 >= 0, s141 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 15 + x'' + x1 + z'' }-> if(1, 0, s110, s735, s736, 1 + s1121 + s737, 1 + s255 + s738, z'', s976) :|: s1121 >= 0, s1121 <= x'', s976 >= 0, s976 <= z'' + x2 + 1, s735 >= 0, s735 <= z, s736 >= 0, s736 <= z', s737 >= 0, s737 <= z, s738 >= 0, s738 <= z', s255 >= 0, s255 <= x1 + 1, s110 >= 0, s110 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 14 + x'' + x1 + z'' }-> if(1, 0, s111, s739, s740, 1 + s1122 + s741, 1 + s256 + s742, z'', s977) :|: s1122 >= 0, s1122 <= x'', s977 >= 0, s977 <= z'' + 0 + 1, s739 >= 0, s739 <= z, s740 >= 0, s740 <= z', s741 >= 0, s741 <= z, s742 >= 0, s742 <= z', s256 >= 0, s256 <= x1 + 1, s111 >= 0, s111 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 14 + x'' + z'' }-> if(1, 0, s112, s743, s744, 1 + s1123 + s745, 1 + s257 + s746, z'', s978) :|: s1123 >= 0, s1123 <= x'', s978 >= 0, s978 <= z'' + x1 + 1, s743 >= 0, s743 <= z, s744 >= 0, s744 <= z', s745 >= 0, s745 <= z, s746 >= 0, s746 <= z', s257 >= 0, s257 <= 0 + 1, s112 >= 0, s112 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(1, 0, s113, s747, s748, 1 + s1124 + s749, 1 + s258 + s750, z'', s979) :|: s1124 >= 0, s1124 <= x'', s979 >= 0, s979 <= z'' + 0 + 1, s747 >= 0, s747 <= z, s748 >= 0, s748 <= z', s749 >= 0, s749 <= z, s750 >= 0, s750 <= z', s258 >= 0, s258 <= 0 + 1, s113 >= 0, s113 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 14 + x'' + z'' }-> if(1, 0, s114, s751, s752, 1 + s1125 + s753, 1 + s259 + s754, z'', s980) :|: s1125 >= 0, s1125 <= 0, s980 >= 0, s980 <= z'' + x1 + 1, s751 >= 0, s751 <= z, s752 >= 0, s752 <= z', s753 >= 0, s753 <= z, s754 >= 0, s754 <= z', s259 >= 0, s259 <= x'' + 1, s114 >= 0, s114 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(1, 0, s115, s755, s756, 1 + s1126 + s757, 1 + s260 + s758, z'', s981) :|: s1126 >= 0, s1126 <= 0, s981 >= 0, s981 <= z'' + 0 + 1, s755 >= 0, s755 <= z, s756 >= 0, s756 <= z', s757 >= 0, s757 <= z, s758 >= 0, s758 <= z', s260 >= 0, s260 <= x'' + 1, s115 >= 0, s115 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + z'' }-> if(1, 0, s116, s759, s760, 1 + s1127 + s761, 1 + s261 + s762, z'', s982) :|: s1127 >= 0, s1127 <= 0, s982 >= 0, s982 <= z'' + x'' + 1, s759 >= 0, s759 <= z, s760 >= 0, s760 <= z', s761 >= 0, s761 <= z, s762 >= 0, s762 <= z', s261 >= 0, s261 <= 0 + 1, s116 >= 0, s116 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 0, s117, s763, s764, 1 + s1128 + s765, 1 + s262 + s766, z'', s983) :|: s1128 >= 0, s1128 <= 0, s983 >= 0, s983 <= z'' + 0 + 1, s763 >= 0, s763 <= z, s764 >= 0, s764 <= z', s765 >= 0, s765 <= z, s766 >= 0, s766 <= z', s262 >= 0, s262 <= 0 + 1, s117 >= 0, s117 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 14 + x' + x'' + z'' }-> if(1, 0, s118, s767, s768, 1 + s1129 + s769, 1 + s263 + s770, z'', s984) :|: s1129 >= 0, s1129 <= x', s984 >= 0, s984 <= z'' + x1 + 1, s767 >= 0, s767 <= z, s768 >= 0, s768 <= z', s769 >= 0, s769 <= z, s770 >= 0, s770 <= z', s263 >= 0, s263 <= x'' + 1, s118 >= 0, s118 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 13 + x' + x'' + z'' }-> if(1, 0, s119, s771, s772, 1 + s1130 + s773, 1 + s264 + s774, z'', s985) :|: s1130 >= 0, s1130 <= x', s985 >= 0, s985 <= z'' + 0 + 1, s771 >= 0, s771 <= z, s772 >= 0, s772 <= z', s773 >= 0, s773 <= z, s774 >= 0, s774 <= z', s264 >= 0, s264 <= x'' + 1, s119 >= 0, s119 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + x' + z'' }-> if(1, 0, s120, s775, s776, 1 + s1131 + s777, 1 + s265 + s778, z'', s986) :|: s1131 >= 0, s1131 <= x', s986 >= 0, s986 <= z'' + x'' + 1, s775 >= 0, s775 <= z, s776 >= 0, s776 <= z', s777 >= 0, s777 <= z, s778 >= 0, s778 <= z', s265 >= 0, s265 <= 0 + 1, s120 >= 0, s120 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(1, 0, s121, s779, s780, 1 + s1132 + s781, 1 + s266 + s782, z'', s987) :|: s1132 >= 0, s1132 <= x', s987 >= 0, s987 <= z'' + 0 + 1, s779 >= 0, s779 <= z, s780 >= 0, s780 <= z', s781 >= 0, s781 <= z, s782 >= 0, s782 <= z', s266 >= 0, s266 <= 0 + 1, s121 >= 0, s121 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 13 + x' + z'' }-> if(1, 0, s122, s783, s784, 1 + s1133 + s785, 1 + s267 + s786, z'', s988) :|: s1133 >= 0, s1133 <= 0, s988 >= 0, s988 <= z'' + x'' + 1, s783 >= 0, s783 <= z, s784 >= 0, s784 <= z', s785 >= 0, s785 <= z, s786 >= 0, s786 <= z', s267 >= 0, s267 <= x' + 1, s122 >= 0, s122 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(1, 0, s123, s787, s788, 1 + s1134 + s789, 1 + s268 + s790, z'', s989) :|: s1134 >= 0, s1134 <= 0, s989 >= 0, s989 <= z'' + 0 + 1, s787 >= 0, s787 <= z, s788 >= 0, s788 <= z', s789 >= 0, s789 <= z, s790 >= 0, s790 <= z', s268 >= 0, s268 <= x' + 1, s123 >= 0, s123 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(1, 0, s124, s791, s792, 1 + s1135 + s793, 1 + s269 + s794, z'', s990) :|: s1135 >= 0, s1135 <= 0, s990 >= 0, s990 <= z'' + x' + 1, s791 >= 0, s791 <= z, s792 >= 0, s792 <= z', s793 >= 0, s793 <= z, s794 >= 0, s794 <= z', s269 >= 0, s269 <= 0 + 1, s124 >= 0, s124 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(1, 0, s125, s795, s796, 1 + s1136 + s797, 1 + s270 + s798, z'', s991) :|: s1136 >= 0, s1136 <= 0, s991 >= 0, s991 <= z'' + 0 + 1, s795 >= 0, s795 <= z, s796 >= 0, s796 <= z', s797 >= 0, s797 <= z, s798 >= 0, s798 <= z', s270 >= 0, s270 <= 0 + 1, s125 >= 0, s125 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 15 + x' + x'' + z'' }-> if(0, 2, s46, s479, s480, 1 + s1057 + s481, 1 + s191 + s482, z'', s912) :|: s1057 >= 0, s1057 <= x', s912 >= 0, s912 <= z'' + x1 + 1, s479 >= 0, s479 <= z, s480 >= 0, s480 <= z', s481 >= 0, s481 <= z, s482 >= 0, s482 <= z', s191 >= 0, s191 <= x'' + 1, s46 >= 0, s46 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 14 + x' + x'' + z'' }-> if(0, 2, s47, s483, s484, 1 + s1058 + s485, 1 + s192 + s486, z'', s913) :|: s1058 >= 0, s1058 <= x', s913 >= 0, s913 <= z'' + 0 + 1, s483 >= 0, s483 <= z, s484 >= 0, s484 <= z', s485 >= 0, s485 <= z, s486 >= 0, s486 <= z', s192 >= 0, s192 <= x'' + 1, s47 >= 0, s47 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 14 + x' + z'' }-> if(0, 2, s48, s487, s488, 1 + s1059 + s489, 1 + s193 + s490, z'', s914) :|: s1059 >= 0, s1059 <= x', s914 >= 0, s914 <= z'' + x'' + 1, s487 >= 0, s487 <= z, s488 >= 0, s488 <= z', s489 >= 0, s489 <= z, s490 >= 0, s490 <= z', s193 >= 0, s193 <= 0 + 1, s48 >= 0, s48 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + x' + z'' }-> if(0, 2, s49, s491, s492, 1 + s1060 + s493, 1 + s194 + s494, z'', s915) :|: s1060 >= 0, s1060 <= x', s915 >= 0, s915 <= z'' + 0 + 1, s491 >= 0, s491 <= z, s492 >= 0, s492 <= z', s493 >= 0, s493 <= z, s494 >= 0, s494 <= z', s194 >= 0, s194 <= 0 + 1, s49 >= 0, s49 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 14 + x' + z'' }-> if(0, 2, s50, s495, s496, 1 + s1061 + s497, 1 + s195 + s498, z'', s916) :|: s1061 >= 0, s1061 <= 0, s916 >= 0, s916 <= z'' + x'' + 1, s495 >= 0, s495 <= z, s496 >= 0, s496 <= z', s497 >= 0, s497 <= z, s498 >= 0, s498 <= z', s195 >= 0, s195 <= x' + 1, s50 >= 0, s50 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + x' + z'' }-> if(0, 2, s51, s499, s500, 1 + s1062 + s501, 1 + s196 + s502, z'', s917) :|: s1062 >= 0, s1062 <= 0, s917 >= 0, s917 <= z'' + 0 + 1, s499 >= 0, s499 <= z, s500 >= 0, s500 <= z', s501 >= 0, s501 <= z, s502 >= 0, s502 <= z', s196 >= 0, s196 <= x' + 1, s51 >= 0, s51 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 13 + z'' }-> if(0, 2, s52, s503, s504, 1 + s1063 + s505, 1 + s197 + s506, z'', s918) :|: s1063 >= 0, s1063 <= 0, s918 >= 0, s918 <= z'' + x' + 1, s503 >= 0, s503 <= z, s504 >= 0, s504 <= z', s505 >= 0, s505 <= z, s506 >= 0, s506 <= z', s197 >= 0, s197 <= 0 + 1, s52 >= 0, s52 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(0, 2, s53, s507, s508, 1 + s1064 + s509, 1 + s198 + s510, z'', s919) :|: s1064 >= 0, s1064 <= 0, s919 >= 0, s919 <= z'' + 0 + 1, s507 >= 0, s507 <= z, s508 >= 0, s508 <= z', s509 >= 0, s509 <= z, s510 >= 0, s510 <= z', s198 >= 0, s198 <= 0 + 1, s53 >= 0, s53 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 14 + x + x' + z'' }-> if(0, 2, s54, s511, s512, 1 + s1065 + s513, 1 + s199 + s514, z'', s920) :|: s1065 >= 0, s1065 <= x, s920 >= 0, s920 <= z'' + x'' + 1, s511 >= 0, s511 <= z, s512 >= 0, s512 <= z', s513 >= 0, s513 <= z, s514 >= 0, s514 <= z', s199 >= 0, s199 <= x' + 1, s54 >= 0, s54 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + x + x' + z'' }-> if(0, 2, s55, s515, s516, 1 + s1066 + s517, 1 + s200 + s518, z'', s921) :|: s1066 >= 0, s1066 <= x, s921 >= 0, s921 <= z'' + 0 + 1, s515 >= 0, s515 <= z, s516 >= 0, s516 <= z', s517 >= 0, s517 <= z, s518 >= 0, s518 <= z', s200 >= 0, s200 <= x' + 1, s55 >= 0, s55 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 13 + x + z'' }-> if(0, 2, s56, s519, s520, 1 + s1067 + s521, 1 + s201 + s522, z'', s922) :|: s1067 >= 0, s1067 <= x, s922 >= 0, s922 <= z'' + x' + 1, s519 >= 0, s519 <= z, s520 >= 0, s520 <= z', s521 >= 0, s521 <= z, s522 >= 0, s522 <= z', s201 >= 0, s201 <= 0 + 1, s56 >= 0, s56 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x + z'' }-> if(0, 2, s57, s523, s524, 1 + s1068 + s525, 1 + s202 + s526, z'', s923) :|: s1068 >= 0, s1068 <= x, s923 >= 0, s923 <= z'' + 0 + 1, s523 >= 0, s523 <= z, s524 >= 0, s524 <= z', s525 >= 0, s525 <= z, s526 >= 0, s526 <= z', s202 >= 0, s202 <= 0 + 1, s57 >= 0, s57 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 13 + x + z'' }-> if(0, 2, s58, s527, s528, 1 + s1069 + s529, 1 + s203 + s530, z'', s924) :|: s1069 >= 0, s1069 <= 0, s924 >= 0, s924 <= z'' + x' + 1, s527 >= 0, s527 <= z, s528 >= 0, s528 <= z', s529 >= 0, s529 <= z, s530 >= 0, s530 <= z', s203 >= 0, s203 <= x + 1, s58 >= 0, s58 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x + z'' }-> if(0, 2, s59, s531, s532, 1 + s1070 + s533, 1 + s204 + s534, z'', s925) :|: s1070 >= 0, s1070 <= 0, s925 >= 0, s925 <= z'' + 0 + 1, s531 >= 0, s531 <= z, s532 >= 0, s532 <= z', s533 >= 0, s533 <= z, s534 >= 0, s534 <= z', s204 >= 0, s204 <= x + 1, s59 >= 0, s59 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(0, 2, s60, s535, s536, 1 + s1071 + s537, 1 + s205 + s538, z'', s926) :|: s1071 >= 0, s1071 <= 0, s926 >= 0, s926 <= z'' + x + 1, s535 >= 0, s535 <= z, s536 >= 0, s536 <= z', s537 >= 0, s537 <= z, s538 >= 0, s538 <= z', s205 >= 0, s205 <= 0 + 1, s60 >= 0, s60 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 2, s61, s539, s540, 1 + s1072 + s541, 1 + s206 + s542, z'', s927) :|: s1072 >= 0, s1072 <= 0, s927 >= 0, s927 <= z'' + 0 + 1, s539 >= 0, s539 <= z, s540 >= 0, s540 <= z', s541 >= 0, s541 <= z, s542 >= 0, s542 <= z', s206 >= 0, s206 <= 0 + 1, s61 >= 0, s61 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 addLists(z, z', z'') -{ 15 + x'' + x1 + z'' }-> if(0, 1, s78, s607, s608, 1 + s1089 + s609, 1 + s223 + s610, z'', s944) :|: s1089 >= 0, s1089 <= x'', s944 >= 0, s944 <= z'' + x2 + 1, s607 >= 0, s607 <= z, s608 >= 0, s608 <= z', s609 >= 0, s609 <= z, s610 >= 0, s610 <= z', s223 >= 0, s223 <= x1 + 1, s78 >= 0, s78 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0, z' = 1 + x2 + xs3, xs3 >= 0, x2 >= 0 addLists(z, z', z'') -{ 14 + x'' + x1 + z'' }-> if(0, 1, s79, s611, s612, 1 + s1090 + s613, 1 + s224 + s614, z'', s945) :|: s1090 >= 0, s1090 <= x'', s945 >= 0, s945 <= z'' + 0 + 1, s611 >= 0, s611 <= z, s612 >= 0, s612 <= z', s613 >= 0, s613 <= z, s614 >= 0, s614 <= z', s224 >= 0, s224 <= x1 + 1, s79 >= 0, s79 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 14 + x'' + z'' }-> if(0, 1, s80, s615, s616, 1 + s1091 + s617, 1 + s225 + s618, z'', s946) :|: s1091 >= 0, s1091 <= x'', s946 >= 0, s946 <= z'' + x1 + 1, s615 >= 0, s615 <= z, s616 >= 0, s616 <= z', s617 >= 0, s617 <= z, s618 >= 0, s618 <= z', s225 >= 0, s225 <= 0 + 1, s80 >= 0, s80 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(0, 1, s81, s619, s620, 1 + s1092 + s621, 1 + s226 + s622, z'', s947) :|: s1092 >= 0, s1092 <= x'', s947 >= 0, s947 <= z'' + 0 + 1, s619 >= 0, s619 <= z, s620 >= 0, s620 <= z', s621 >= 0, s621 <= z, s622 >= 0, s622 <= z', s226 >= 0, s226 <= 0 + 1, s81 >= 0, s81 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 14 + x'' + z'' }-> if(0, 1, s82, s623, s624, 1 + s1093 + s625, 1 + s227 + s626, z'', s948) :|: s1093 >= 0, s1093 <= 0, s948 >= 0, s948 <= z'' + x1 + 1, s623 >= 0, s623 <= z, s624 >= 0, s624 <= z', s625 >= 0, s625 <= z, s626 >= 0, s626 <= z', s227 >= 0, s227 <= x'' + 1, s82 >= 0, s82 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 13 + x'' + z'' }-> if(0, 1, s83, s627, s628, 1 + s1094 + s629, 1 + s228 + s630, z'', s949) :|: s1094 >= 0, s1094 <= 0, s949 >= 0, s949 <= z'' + 0 + 1, s627 >= 0, s627 <= z, s628 >= 0, s628 <= z', s629 >= 0, s629 <= z, s630 >= 0, s630 <= z', s228 >= 0, s228 <= x'' + 1, s83 >= 0, s83 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + z'' }-> if(0, 1, s84, s631, s632, 1 + s1095 + s633, 1 + s229 + s634, z'', s950) :|: s1095 >= 0, s1095 <= 0, s950 >= 0, s950 <= z'' + x'' + 1, s631 >= 0, s631 <= z, s632 >= 0, s632 <= z', s633 >= 0, s633 <= z, s634 >= 0, s634 <= z', s229 >= 0, s229 <= 0 + 1, s84 >= 0, s84 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(0, 1, s85, s635, s636, 1 + s1096 + s637, 1 + s230 + s638, z'', s951) :|: s1096 >= 0, s1096 <= 0, s951 >= 0, s951 <= z'' + 0 + 1, s635 >= 0, s635 <= z, s636 >= 0, s636 <= z', s637 >= 0, s637 <= z, s638 >= 0, s638 <= z', s230 >= 0, s230 <= 0 + 1, s85 >= 0, s85 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 14 + x' + x'' + z'' }-> if(0, 1, s86, s639, s640, 1 + s1097 + s641, 1 + s231 + s642, z'', s952) :|: s1097 >= 0, s1097 <= x', s952 >= 0, s952 <= z'' + x1 + 1, s639 >= 0, s639 <= z, s640 >= 0, s640 <= z', s641 >= 0, s641 <= z, s642 >= 0, s642 <= z', s231 >= 0, s231 <= x'' + 1, s86 >= 0, s86 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 13 + x' + x'' + z'' }-> if(0, 1, s87, s643, s644, 1 + s1098 + s645, 1 + s232 + s646, z'', s953) :|: s1098 >= 0, s1098 <= x', s953 >= 0, s953 <= z'' + 0 + 1, s643 >= 0, s643 <= z, s644 >= 0, s644 <= z', s645 >= 0, s645 <= z, s646 >= 0, s646 <= z', s232 >= 0, s232 <= x'' + 1, s87 >= 0, s87 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + x' + z'' }-> if(0, 1, s88, s647, s648, 1 + s1099 + s649, 1 + s233 + s650, z'', s954) :|: s1099 >= 0, s1099 <= x', s954 >= 0, s954 <= z'' + x'' + 1, s647 >= 0, s647 <= z, s648 >= 0, s648 <= z', s649 >= 0, s649 <= z, s650 >= 0, s650 <= z', s233 >= 0, s233 <= 0 + 1, s88 >= 0, s88 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(0, 1, s89, s651, s652, 1 + s1100 + s653, 1 + s234 + s654, z'', s955) :|: s1100 >= 0, s1100 <= x', s955 >= 0, s955 <= z'' + 0 + 1, s651 >= 0, s651 <= z, s652 >= 0, s652 <= z', s653 >= 0, s653 <= z, s654 >= 0, s654 <= z', s234 >= 0, s234 <= 0 + 1, s89 >= 0, s89 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 13 + x' + z'' }-> if(0, 1, s90, s655, s656, 1 + s1101 + s657, 1 + s235 + s658, z'', s956) :|: s1101 >= 0, s1101 <= 0, s956 >= 0, s956 <= z'' + x'' + 1, s655 >= 0, s655 <= z, s656 >= 0, s656 <= z', s657 >= 0, s657 <= z, s658 >= 0, s658 <= z', s235 >= 0, s235 <= x' + 1, s90 >= 0, s90 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(0, 1, s91, s659, s660, 1 + s1102 + s661, 1 + s236 + s662, z'', s957) :|: s1102 >= 0, s1102 <= 0, s957 >= 0, s957 <= z'' + 0 + 1, s659 >= 0, s659 <= z, s660 >= 0, s660 <= z', s661 >= 0, s661 <= z, s662 >= 0, s662 <= z', s236 >= 0, s236 <= x' + 1, s91 >= 0, s91 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(0, 1, s92, s663, s664, 1 + s1103 + s665, 1 + s237 + s666, z'', s958) :|: s1103 >= 0, s1103 <= 0, s958 >= 0, s958 <= z'' + x' + 1, s663 >= 0, s663 <= z, s664 >= 0, s664 <= z', s665 >= 0, s665 <= z, s666 >= 0, s666 <= z', s237 >= 0, s237 <= 0 + 1, s92 >= 0, s92 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 1, s93, s667, s668, 1 + s1104 + s669, 1 + s238 + s670, z'', s959) :|: s1104 >= 0, s1104 <= 0, s959 >= 0, s959 <= z'' + 0 + 1, s667 >= 0, s667 <= z, s668 >= 0, s668 <= z', s669 >= 0, s669 <= z, s670 >= 0, s670 <= z', s238 >= 0, s238 <= 0 + 1, s93 >= 0, s93 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 14 + x' + x'' + z'' }-> if(0, 0, s62, s543, s544, 1 + s1073 + s545, 1 + s207 + s546, z'', s928) :|: s1073 >= 0, s1073 <= x', s928 >= 0, s928 <= z'' + x1 + 1, s543 >= 0, s543 <= z, s544 >= 0, s544 <= z', s545 >= 0, s545 <= z, s546 >= 0, s546 <= z', s207 >= 0, s207 <= x'' + 1, s62 >= 0, s62 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0, z' = 1 + x1 + xs2, xs2 >= 0, x1 >= 0 addLists(z, z', z'') -{ 13 + x' + x'' + z'' }-> if(0, 0, s63, s547, s548, 1 + s1074 + s549, 1 + s208 + s550, z'', s929) :|: s1074 >= 0, s1074 <= x', s929 >= 0, s929 <= z'' + 0 + 1, s547 >= 0, s547 <= z, s548 >= 0, s548 <= z', s549 >= 0, s549 <= z, s550 >= 0, s550 <= z', s208 >= 0, s208 <= x'' + 1, s63 >= 0, s63 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 13 + x' + z'' }-> if(0, 0, s64, s551, s552, 1 + s1075 + s553, 1 + s209 + s554, z'', s930) :|: s1075 >= 0, s1075 <= x', s930 >= 0, s930 <= z'' + x'' + 1, s551 >= 0, s551 <= z, s552 >= 0, s552 <= z', s553 >= 0, s553 <= z, s554 >= 0, s554 <= z', s209 >= 0, s209 <= 0 + 1, s64 >= 0, s64 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(0, 0, s65, s555, s556, 1 + s1076 + s557, 1 + s210 + s558, z'', s931) :|: s1076 >= 0, s1076 <= x', s931 >= 0, s931 <= z'' + 0 + 1, s555 >= 0, s555 <= z, s556 >= 0, s556 <= z', s557 >= 0, s557 <= z, s558 >= 0, s558 <= z', s210 >= 0, s210 <= 0 + 1, s65 >= 0, s65 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 13 + x' + z'' }-> if(0, 0, s66, s559, s560, 1 + s1077 + s561, 1 + s211 + s562, z'', s932) :|: s1077 >= 0, s1077 <= 0, s932 >= 0, s932 <= z'' + x'' + 1, s559 >= 0, s559 <= z, s560 >= 0, s560 <= z', s561 >= 0, s561 <= z, s562 >= 0, s562 <= z', s211 >= 0, s211 <= x' + 1, s66 >= 0, s66 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x' + z'' }-> if(0, 0, s67, s563, s564, 1 + s1078 + s565, 1 + s212 + s566, z'', s933) :|: s1078 >= 0, s1078 <= 0, s933 >= 0, s933 <= z'' + 0 + 1, s563 >= 0, s563 <= z, s564 >= 0, s564 <= z', s565 >= 0, s565 <= z, s566 >= 0, s566 <= z', s212 >= 0, s212 <= x' + 1, s67 >= 0, s67 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + z'' }-> if(0, 0, s68, s567, s568, 1 + s1079 + s569, 1 + s213 + s570, z'', s934) :|: s1079 >= 0, s1079 <= 0, s934 >= 0, s934 <= z'' + x' + 1, s567 >= 0, s567 <= z, s568 >= 0, s568 <= z', s569 >= 0, s569 <= z, s570 >= 0, s570 <= z', s213 >= 0, s213 <= 0 + 1, s68 >= 0, s68 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 0, s69, s571, s572, 1 + s1080 + s573, 1 + s214 + s574, z'', s935) :|: s1080 >= 0, s1080 <= 0, s935 >= 0, s935 <= z'' + 0 + 1, s571 >= 0, s571 <= z, s572 >= 0, s572 <= z', s573 >= 0, s573 <= z, s574 >= 0, s574 <= z', s214 >= 0, s214 <= 0 + 1, s69 >= 0, s69 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 13 + x + x' + z'' }-> if(0, 0, s70, s575, s576, 1 + s1081 + s577, 1 + s215 + s578, z'', s936) :|: s1081 >= 0, s1081 <= x, s936 >= 0, s936 <= z'' + x'' + 1, s575 >= 0, s575 <= z, s576 >= 0, s576 <= z', s577 >= 0, s577 <= z, s578 >= 0, s578 <= z', s215 >= 0, s215 <= x' + 1, s70 >= 0, s70 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0, z' = 1 + x'' + xs1, xs1 >= 0, x'' >= 0 addLists(z, z', z'') -{ 12 + x + x' + z'' }-> if(0, 0, s71, s579, s580, 1 + s1082 + s581, 1 + s216 + s582, z'', s937) :|: s1082 >= 0, s1082 <= x, s937 >= 0, s937 <= z'' + 0 + 1, s579 >= 0, s579 <= z, s580 >= 0, s580 <= z', s581 >= 0, s581 <= z, s582 >= 0, s582 <= z', s216 >= 0, s216 <= x' + 1, s71 >= 0, s71 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 12 + x + z'' }-> if(0, 0, s72, s583, s584, 1 + s1083 + s585, 1 + s217 + s586, z'', s938) :|: s1083 >= 0, s1083 <= x, s938 >= 0, s938 <= z'' + x' + 1, s583 >= 0, s583 <= z, s584 >= 0, s584 <= z', s585 >= 0, s585 <= z, s586 >= 0, s586 <= z', s217 >= 0, s217 <= 0 + 1, s72 >= 0, s72 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x + z'' }-> if(0, 0, s73, s587, s588, 1 + s1084 + s589, 1 + s218 + s590, z'', s939) :|: s1084 >= 0, s1084 <= x, s939 >= 0, s939 <= z'' + 0 + 1, s587 >= 0, s587 <= z, s588 >= 0, s588 <= z', s589 >= 0, s589 <= z, s590 >= 0, s590 <= z', s218 >= 0, s218 <= 0 + 1, s73 >= 0, s73 <= 2, z >= 0, z' >= 0, z'' >= 0, z = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 12 + x + z'' }-> if(0, 0, s74, s591, s592, 1 + s1085 + s593, 1 + s219 + s594, z'', s940) :|: s1085 >= 0, s1085 <= 0, s940 >= 0, s940 <= z'' + x' + 1, s591 >= 0, s591 <= z, s592 >= 0, s592 <= z', s593 >= 0, s593 <= z, s594 >= 0, s594 <= z', s219 >= 0, s219 <= x + 1, s74 >= 0, s74 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0, z' = 1 + x' + xs'', xs'' >= 0, x' >= 0 addLists(z, z', z'') -{ 11 + x + z'' }-> if(0, 0, s75, s595, s596, 1 + s1086 + s597, 1 + s220 + s598, z'', s941) :|: s1086 >= 0, s1086 <= 0, s941 >= 0, s941 <= z'' + 0 + 1, s595 >= 0, s595 <= z, s596 >= 0, s596 <= z', s597 >= 0, s597 <= z, s598 >= 0, s598 <= z', s220 >= 0, s220 <= x + 1, s75 >= 0, s75 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 11 + z'' }-> if(0, 0, s76, s599, s600, 1 + s1087 + s601, 1 + s221 + s602, z'', s942) :|: s1087 >= 0, s1087 <= 0, s942 >= 0, s942 <= z'' + x + 1, s599 >= 0, s599 <= z, s600 >= 0, s600 <= z', s601 >= 0, s601 <= z, s602 >= 0, s602 <= z', s221 >= 0, s221 <= 0 + 1, s76 >= 0, s76 <= 2, z >= 0, z' >= 0, z'' >= 0, z' = 1 + x + xs', xs' >= 0, x >= 0 addLists(z, z', z'') -{ 10 + z'' }-> if(0, 0, s77, s603, s604, 1 + s1088 + s605, 1 + s222 + s606, z'', s943) :|: s1088 >= 0, s1088 <= 0, s943 >= 0, s943 <= z'' + 0 + 1, s603 >= 0, s603 <= z, s604 >= 0, s604 <= z', s605 >= 0, s605 <= z, s606 >= 0, s606 <= z', s222 >= 0, s222 <= 0 + 1, s77 >= 0, s77 <= 2, z >= 0, z' >= 0, z'' >= 0 append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 append(z, z') -{ 2 + ys }-> 1 + y + s863 :|: s863 >= 0, s863 <= ys + z' + 1, ys >= 0, y >= 0, z' >= 0, z = 1 + y + ys append(z, z') -{ 1 }-> 1 + z' + 1 :|: z = 1, z' >= 0 head(z) -{ 1 }-> x :|: z = 1 + x + xs, xs >= 0, x >= 0 head(z) -{ 0 }-> 0 :|: z >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> z5 :|: z1 >= 0, z' = 2, z5 >= 0, z6 >= 0, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z1, z2, z6) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 2, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(z3, z4, z5) :|: z1 >= 0, z = 1, z5 >= 0, z6 >= 0, z' = 1, z'' = 1, z4 >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z5 >= 0, z6 >= 0, z' = 1, z4 >= 0, z = 2, z'' >= 0, z3 >= 0, z2 >= 0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z1 >= 0, z' = 2, z = 1, z5 >= 0, z6 >= 0, z4 >= 0, z'' >= 0, z3 >= 0, z2 >= 0 inc(z) -{ 1 + z }-> 1 + s142 :|: s142 >= 0, s142 <= z - 1 + 1, z - 1 >= 0 inc(z) -{ 1 }-> 1 + 0 :|: z = 0 isEmpty(z) -{ 1 }-> 2 :|: z = 1 isEmpty(z) -{ 1 }-> 1 :|: z = 1 + x + xs, xs >= 0, x >= 0 isEmpty(z) -{ 0 }-> 0 :|: z >= 0 isZero(z) -{ 1 }-> 2 :|: z = 0 isZero(z) -{ 1 }-> 1 :|: z - 1 >= 0 p(z) -{ 1 }-> 0 :|: z = 1 + 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 2 + z }-> 1 + s1008 :|: s1008 >= 0, s1008 <= 1 + (z - 2), z - 2 >= 0 tail(z) -{ 1 }-> xs :|: z = 1 + x + xs, xs >= 0, x >= 0 tail(z) -{ 1 }-> 1 :|: z = 1 tail(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {addLists,if}, {addList} Previous analysis results are: isEmpty: runtime: O(1) [1], size: O(1) [2] isZero: runtime: O(1) [1], size: O(1) [2] inc: runtime: O(n^1) [1 + z], size: O(n^1) [1 + z] tail: runtime: O(1) [1], size: O(n^1) [z] append: runtime: O(n^1) [1 + z], size: O(n^1) [1 + z + z'] head: runtime: O(1) [1], size: O(n^1) [z] p: runtime: O(n^1) [2 + z], size: O(n^1) [z] ---------------------------------------- (65) 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: isEmpty(v0) -> null_isEmpty [0] head(v0) -> null_head [0] tail(v0) -> null_tail [0] append(v0, v1) -> null_append [0] isZero(v0) -> null_isZero [0] p(v0) -> null_p [0] inc(v0) -> null_inc [0] if(v0, v1, v2, v3, v4, v5, v6, v7, v8) -> null_if [0] And the following fresh constants: null_isEmpty, null_head, null_tail, null_append, null_isZero, null_p, null_inc, null_if ---------------------------------------- (66) 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: isEmpty(cons(x, xs)) -> false [1] isEmpty(nil) -> true [1] isZero(0) -> true [1] isZero(s(x)) -> false [1] head(cons(x, xs)) -> x [1] tail(cons(x, xs)) -> xs [1] tail(nil) -> nil [1] append(nil, x) -> cons(x, nil) [1] append(cons(y, ys), x) -> cons(y, append(ys, x)) [1] p(s(s(x))) -> s(p(s(x))) [1] p(s(0)) -> 0 [1] p(0) -> 0 [1] inc(s(x)) -> s(inc(x)) [1] inc(0) -> s(0) [1] addLists(xs, ys, zs) -> if(isEmpty(xs), isEmpty(ys), isZero(head(xs)), tail(xs), tail(ys), cons(p(head(xs)), tail(xs)), cons(inc(head(ys)), tail(ys)), zs, append(zs, head(ys))) [1] if(true, true, b, xs, ys, xs2, ys2, zs, zs2) -> zs [1] if(true, false, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError [1] if(false, true, b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError [1] if(false, false, false, xs, ys, xs2, ys2, zs, zs2) -> addLists(xs2, ys2, zs) [1] if(false, false, true, xs, ys, xs2, ys2, zs, zs2) -> addLists(xs, ys, zs2) [1] addList(xs, ys) -> addLists(xs, ys, nil) [1] isEmpty(v0) -> null_isEmpty [0] head(v0) -> null_head [0] tail(v0) -> null_tail [0] append(v0, v1) -> null_append [0] isZero(v0) -> null_isZero [0] p(v0) -> null_p [0] inc(v0) -> null_inc [0] if(v0, v1, v2, v3, v4, v5, v6, v7, v8) -> null_if [0] The TRS has the following type information: isEmpty :: cons:nil:differentLengthError:null_tail:null_append:null_if -> false:true:null_isEmpty:null_isZero cons :: 0:s:null_head:null_p:null_inc -> cons:nil:differentLengthError:null_tail:null_append:null_if -> cons:nil:differentLengthError:null_tail:null_append:null_if false :: false:true:null_isEmpty:null_isZero nil :: cons:nil:differentLengthError:null_tail:null_append:null_if true :: false:true:null_isEmpty:null_isZero isZero :: 0:s:null_head:null_p:null_inc -> false:true:null_isEmpty:null_isZero 0 :: 0:s:null_head:null_p:null_inc s :: 0:s:null_head:null_p:null_inc -> 0:s:null_head:null_p:null_inc head :: cons:nil:differentLengthError:null_tail:null_append:null_if -> 0:s:null_head:null_p:null_inc tail :: cons:nil:differentLengthError:null_tail:null_append:null_if -> cons:nil:differentLengthError:null_tail:null_append:null_if append :: cons:nil:differentLengthError:null_tail:null_append:null_if -> 0:s:null_head:null_p:null_inc -> cons:nil:differentLengthError:null_tail:null_append:null_if p :: 0:s:null_head:null_p:null_inc -> 0:s:null_head:null_p:null_inc inc :: 0:s:null_head:null_p:null_inc -> 0:s:null_head:null_p:null_inc addLists :: cons:nil:differentLengthError:null_tail:null_append:null_if -> cons:nil:differentLengthError:null_tail:null_append:null_if -> cons:nil:differentLengthError:null_tail:null_append:null_if -> cons:nil:differentLengthError:null_tail:null_append:null_if if :: false:true:null_isEmpty:null_isZero -> false:true:null_isEmpty:null_isZero -> false:true:null_isEmpty:null_isZero -> cons:nil:differentLengthError:null_tail:null_append:null_if -> cons:nil:differentLengthError:null_tail:null_append:null_if -> cons:nil:differentLengthError:null_tail:null_append:null_if -> cons:nil:differentLengthError:null_tail:null_append:null_if -> cons:nil:differentLengthError:null_tail:null_append:null_if -> cons:nil:differentLengthError:null_tail:null_append:null_if -> cons:nil:differentLengthError:null_tail:null_append:null_if differentLengthError :: cons:nil:differentLengthError:null_tail:null_append:null_if addList :: cons:nil:differentLengthError:null_tail:null_append:null_if -> cons:nil:differentLengthError:null_tail:null_append:null_if -> cons:nil:differentLengthError:null_tail:null_append:null_if null_isEmpty :: false:true:null_isEmpty:null_isZero null_head :: 0:s:null_head:null_p:null_inc null_tail :: cons:nil:differentLengthError:null_tail:null_append:null_if null_append :: cons:nil:differentLengthError:null_tail:null_append:null_if null_isZero :: false:true:null_isEmpty:null_isZero null_p :: 0:s:null_head:null_p:null_inc null_inc :: 0:s:null_head:null_p:null_inc null_if :: cons:nil:differentLengthError:null_tail:null_append:null_if Rewrite Strategy: INNERMOST ---------------------------------------- (67) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: false => 1 nil => 1 true => 2 0 => 0 differentLengthError => 0 null_isEmpty => 0 null_head => 0 null_tail => 0 null_append => 0 null_isZero => 0 null_p => 0 null_inc => 0 null_if => 0 ---------------------------------------- (68) Obligation: Complexity RNTS consisting of the following rules: addList(z, z') -{ 1 }-> addLists(xs, ys, 1) :|: xs >= 0, z = xs, z' = ys, ys >= 0 addLists(z, z', z'') -{ 1 }-> if(isEmpty(xs), isEmpty(ys), isZero(head(xs)), tail(xs), tail(ys), 1 + p(head(xs)) + tail(xs), 1 + inc(head(ys)) + tail(ys), zs, append(zs, head(ys))) :|: xs >= 0, z = xs, z' = ys, ys >= 0, zs >= 0, z'' = zs append(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 append(z, z') -{ 1 }-> 1 + x + 1 :|: z' = x, z = 1, x >= 0 append(z, z') -{ 1 }-> 1 + y + append(ys, x) :|: z' = x, ys >= 0, y >= 0, x >= 0, z = 1 + y + ys head(z) -{ 1 }-> x :|: z = 1 + x + xs, xs >= 0, x >= 0 head(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> zs :|: z2 = ys, xs >= 0, z' = 2, z6 = zs2, zs >= 0, zs2 >= 0, z3 = xs2, z1 = xs, z4 = ys2, ys2 >= 0, z = 2, b >= 0, xs2 >= 0, z'' = b, ys >= 0, z5 = zs if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(xs, ys, zs2) :|: z2 = ys, xs >= 0, z6 = zs2, z = 1, zs >= 0, zs2 >= 0, z' = 1, z'' = 2, z3 = xs2, z1 = xs, z4 = ys2, ys2 >= 0, xs2 >= 0, ys >= 0, z5 = zs if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> addLists(xs2, ys2, zs) :|: z2 = ys, xs >= 0, z6 = zs2, z = 1, zs >= 0, zs2 >= 0, z' = 1, z3 = xs2, z'' = 1, z1 = xs, z4 = ys2, ys2 >= 0, xs2 >= 0, ys >= 0, z5 = zs if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z2 = ys, xs >= 0, z6 = zs2, zs >= 0, zs2 >= 0, z' = 1, z3 = xs2, z1 = xs, z4 = ys2, ys2 >= 0, z = 2, b >= 0, xs2 >= 0, z'' = b, ys >= 0, z5 = zs if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 1 }-> 0 :|: z2 = ys, xs >= 0, z' = 2, z6 = zs2, z = 1, zs >= 0, zs2 >= 0, z3 = xs2, z1 = xs, z4 = ys2, ys2 >= 0, b >= 0, xs2 >= 0, z'' = b, ys >= 0, z5 = zs if(z, z', z'', z1, z2, z3, z4, z5, z6) -{ 0 }-> 0 :|: z1 = v3, v0 >= 0, z5 = v7, v8 >= 0, v6 >= 0, z'' = v2, v1 >= 0, v5 >= 0, z = v0, z' = v1, z2 = v4, v2 >= 0, v3 >= 0, z3 = v5, v4 >= 0, v7 >= 0, z4 = v6, z6 = v8 inc(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 inc(z) -{ 1 }-> 1 + inc(x) :|: x >= 0, z = 1 + x inc(z) -{ 1 }-> 1 + 0 :|: z = 0 isEmpty(z) -{ 1 }-> 2 :|: z = 1 isEmpty(z) -{ 1 }-> 1 :|: z = 1 + x + xs, xs >= 0, x >= 0 isEmpty(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 isZero(z) -{ 1 }-> 2 :|: z = 0 isZero(z) -{ 1 }-> 1 :|: x >= 0, z = 1 + x isZero(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 p(z) -{ 1 }-> 0 :|: z = 1 + 0 p(z) -{ 1 }-> 0 :|: z = 0 p(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 p(z) -{ 1 }-> 1 + p(1 + x) :|: x >= 0, z = 1 + (1 + x) tail(z) -{ 1 }-> xs :|: z = 1 + x + xs, xs >= 0, x >= 0 tail(z) -{ 1 }-> 1 :|: z = 1 tail(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 Only complete derivations are relevant for the runtime complexity. ---------------------------------------- (69) CpxTrsToCdtProof (UPPER BOUND(ID)) Converted Cpx (relative) TRS with rewrite strategy PARALLEL_INNERMOST to CDT ---------------------------------------- (70) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) addLists(z0, z1, z2) -> if(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))) if(true, true, z0, z1, z2, z3, z4, z5, z6) -> z5 if(true, false, z0, z1, z2, z3, z4, z5, z6) -> differentLengthError if(false, true, z0, z1, z2, z3, z4, z5, z6) -> differentLengthError if(false, false, false, z0, z1, z2, z3, z4, z5) -> addLists(z2, z3, z4) if(false, false, true, z0, z1, z2, z3, z4, z5) -> addLists(z0, z1, z5) addList(z0, z1) -> addLists(z0, z1, nil) Tuples: ISEMPTY(cons(z0, z1)) -> c ISEMPTY(nil) -> c1 ISZERO(0) -> c2 ISZERO(s(z0)) -> c3 HEAD(cons(z0, z1)) -> c4 TAIL(cons(z0, z1)) -> c5 TAIL(nil) -> c6 APPEND(nil, z0) -> c7 APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) P(s(0)) -> c10 P(0) -> c11 INC(s(z0)) -> c12(INC(z0)) INC(0) -> c13 ADDLISTS(z0, z1, z2) -> c14(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), ISEMPTY(z0)) ADDLISTS(z0, z1, z2) -> c15(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), ISEMPTY(z1)) ADDLISTS(z0, z1, z2) -> c16(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), ISZERO(head(z0)), HEAD(z0)) ADDLISTS(z0, z1, z2) -> c17(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), TAIL(z0)) ADDLISTS(z0, z1, z2) -> c18(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), TAIL(z1)) ADDLISTS(z0, z1, z2) -> c19(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), P(head(z0)), HEAD(z0)) ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), TAIL(z0)) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1)), HEAD(z1)) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), TAIL(z1)) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1)), HEAD(z1)) IF(true, true, z0, z1, z2, z3, z4, z5, z6) -> c24 IF(true, false, z0, z1, z2, z3, z4, z5, z6) -> c25 IF(false, true, z0, z1, z2, z3, z4, z5, z6) -> c26 IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLIST(z0, z1) -> c29(ADDLISTS(z0, z1, nil)) S tuples: ISEMPTY(cons(z0, z1)) -> c ISEMPTY(nil) -> c1 ISZERO(0) -> c2 ISZERO(s(z0)) -> c3 HEAD(cons(z0, z1)) -> c4 TAIL(cons(z0, z1)) -> c5 TAIL(nil) -> c6 APPEND(nil, z0) -> c7 APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) P(s(0)) -> c10 P(0) -> c11 INC(s(z0)) -> c12(INC(z0)) INC(0) -> c13 ADDLISTS(z0, z1, z2) -> c14(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), ISEMPTY(z0)) ADDLISTS(z0, z1, z2) -> c15(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), ISEMPTY(z1)) ADDLISTS(z0, z1, z2) -> c16(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), ISZERO(head(z0)), HEAD(z0)) ADDLISTS(z0, z1, z2) -> c17(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), TAIL(z0)) ADDLISTS(z0, z1, z2) -> c18(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), TAIL(z1)) ADDLISTS(z0, z1, z2) -> c19(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), P(head(z0)), HEAD(z0)) ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), TAIL(z0)) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1)), HEAD(z1)) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), TAIL(z1)) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1)), HEAD(z1)) IF(true, true, z0, z1, z2, z3, z4, z5, z6) -> c24 IF(true, false, z0, z1, z2, z3, z4, z5, z6) -> c25 IF(false, true, z0, z1, z2, z3, z4, z5, z6) -> c26 IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLIST(z0, z1) -> c29(ADDLISTS(z0, z1, nil)) K tuples:none Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, append_2, p_1, inc_1, addLists_3, if_9, addList_2 Defined Pair Symbols: ISEMPTY_1, ISZERO_1, HEAD_1, TAIL_1, APPEND_2, P_1, INC_1, ADDLISTS_3, IF_9, ADDLIST_2 Compound Symbols: c, c1, c2, c3, c4, c5, c6, c7, c8_1, c9_1, c10, c11, c12_1, c13, c14_2, c15_2, c16_3, c17_2, c18_2, c19_3, c20_2, c21_3, c22_2, c23_3, c24, c25, c26, c27_1, c28_1, c29_1 ---------------------------------------- (71) CdtLeafRemovalProof (ComplexityIfPolyImplication) Removed 1 leading nodes: ADDLIST(z0, z1) -> c29(ADDLISTS(z0, z1, nil)) Removed 14 trailing nodes: P(0) -> c11 APPEND(nil, z0) -> c7 HEAD(cons(z0, z1)) -> c4 TAIL(cons(z0, z1)) -> c5 IF(true, false, z0, z1, z2, z3, z4, z5, z6) -> c25 ISZERO(s(z0)) -> c3 IF(false, true, z0, z1, z2, z3, z4, z5, z6) -> c26 IF(true, true, z0, z1, z2, z3, z4, z5, z6) -> c24 INC(0) -> c13 P(s(0)) -> c10 ISEMPTY(nil) -> c1 ISZERO(0) -> c2 TAIL(nil) -> c6 ISEMPTY(cons(z0, z1)) -> c ---------------------------------------- (72) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) addLists(z0, z1, z2) -> if(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))) if(true, true, z0, z1, z2, z3, z4, z5, z6) -> z5 if(true, false, z0, z1, z2, z3, z4, z5, z6) -> differentLengthError if(false, true, z0, z1, z2, z3, z4, z5, z6) -> differentLengthError if(false, false, false, z0, z1, z2, z3, z4, z5) -> addLists(z2, z3, z4) if(false, false, true, z0, z1, z2, z3, z4, z5) -> addLists(z0, z1, z5) addList(z0, z1) -> addLists(z0, z1, nil) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) ADDLISTS(z0, z1, z2) -> c14(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), ISEMPTY(z0)) ADDLISTS(z0, z1, z2) -> c15(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), ISEMPTY(z1)) ADDLISTS(z0, z1, z2) -> c16(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), ISZERO(head(z0)), HEAD(z0)) ADDLISTS(z0, z1, z2) -> c17(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), TAIL(z0)) ADDLISTS(z0, z1, z2) -> c18(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), TAIL(z1)) ADDLISTS(z0, z1, z2) -> c19(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), P(head(z0)), HEAD(z0)) ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), TAIL(z0)) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1)), HEAD(z1)) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), TAIL(z1)) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1)), HEAD(z1)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) ADDLISTS(z0, z1, z2) -> c14(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), ISEMPTY(z0)) ADDLISTS(z0, z1, z2) -> c15(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), ISEMPTY(z1)) ADDLISTS(z0, z1, z2) -> c16(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), ISZERO(head(z0)), HEAD(z0)) ADDLISTS(z0, z1, z2) -> c17(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), TAIL(z0)) ADDLISTS(z0, z1, z2) -> c18(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), TAIL(z1)) ADDLISTS(z0, z1, z2) -> c19(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), P(head(z0)), HEAD(z0)) ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), TAIL(z0)) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1)), HEAD(z1)) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), TAIL(z1)) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1)), HEAD(z1)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) K tuples:none Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, append_2, p_1, inc_1, addLists_3, if_9, addList_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, ADDLISTS_3, IF_9 Compound Symbols: c8_1, c9_1, c12_1, c14_2, c15_2, c16_3, c17_2, c18_2, c19_3, c20_2, c21_3, c22_2, c23_3, c27_1, c28_1 ---------------------------------------- (73) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 11 trailing tuple parts ---------------------------------------- (74) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) addLists(z0, z1, z2) -> if(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))) if(true, true, z0, z1, z2, z3, z4, z5, z6) -> z5 if(true, false, z0, z1, z2, z3, z4, z5, z6) -> differentLengthError if(false, true, z0, z1, z2, z3, z4, z5, z6) -> differentLengthError if(false, false, false, z0, z1, z2, z3, z4, z5) -> addLists(z2, z3, z4) if(false, false, true, z0, z1, z2, z3, z4, z5) -> addLists(z0, z1, z5) addList(z0, z1) -> addLists(z0, z1, nil) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c14(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c15(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c16(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c17(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c18(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c19(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), P(head(z0))) ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c14(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c15(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c16(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c17(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c18(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c19(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), P(head(z0))) ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) K tuples:none Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, append_2, p_1, inc_1, addLists_3, if_9, addList_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c20_1, c21_2, c22_1, c23_2 ---------------------------------------- (75) CdtUsableRulesProof (BOTH BOUNDS(ID, ID)) The following rules are not usable and were removed: addLists(z0, z1, z2) -> if(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))) if(true, true, z0, z1, z2, z3, z4, z5, z6) -> z5 if(true, false, z0, z1, z2, z3, z4, z5, z6) -> differentLengthError if(false, true, z0, z1, z2, z3, z4, z5, z6) -> differentLengthError if(false, false, false, z0, z1, z2, z3, z4, z5) -> addLists(z2, z3, z4) if(false, false, true, z0, z1, z2, z3, z4, z5) -> addLists(z0, z1, z5) addList(z0, z1) -> addLists(z0, z1, nil) ---------------------------------------- (76) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c14(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c15(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c16(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c17(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c18(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c19(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), P(head(z0))) ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c14(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c15(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c16(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c17(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c18(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c19(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), P(head(z0))) ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) K tuples:none Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c20_1, c21_2, c22_1, c23_2 ---------------------------------------- (77) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(z0, z1, z2) -> c14(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) by ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c14(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c14(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c14(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ---------------------------------------- (78) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c15(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c16(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c17(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c18(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c19(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), P(head(z0))) ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c14(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c14(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c14(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c15(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c16(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c17(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c18(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c19(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), P(head(z0))) ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c14(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c14(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c14(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) K tuples:none Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c15_1, c16_1, c17_1, c18_1, c19_2, c20_1, c21_2, c22_1, c23_2, c14_1 ---------------------------------------- (79) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing nodes: ADDLISTS(nil, x1, x2) -> c14(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c14(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c14(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ---------------------------------------- (80) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c15(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c16(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c17(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c18(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c19(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), P(head(z0))) ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c15(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c16(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c17(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c18(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c19(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), P(head(z0))) ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) K tuples:none Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c15_1, c16_1, c17_1, c18_1, c19_2, c20_1, c21_2, c22_1, c23_2, c14_1 ---------------------------------------- (81) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(z0, z1, z2) -> c15(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) by ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c15(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c15(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c15(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ---------------------------------------- (82) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c16(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c17(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c18(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c19(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), P(head(z0))) ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c15(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c15(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c15(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c16(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c17(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c18(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c19(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), P(head(z0))) ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c15(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c15(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c15(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) K tuples:none Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c16_1, c17_1, c18_1, c19_2, c20_1, c21_2, c22_1, c23_2, c14_1, c15_1 ---------------------------------------- (83) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing nodes: ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c15(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c15(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c15(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ---------------------------------------- (84) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c16(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c17(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c18(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c19(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), P(head(z0))) ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c16(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c17(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c18(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c19(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), P(head(z0))) ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) K tuples:none Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c16_1, c17_1, c18_1, c19_2, c20_1, c21_2, c22_1, c23_2, c14_1, c15_1 ---------------------------------------- (85) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(z0, z1, z2) -> c16(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) by ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c16(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c16(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c16(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ---------------------------------------- (86) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c17(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c18(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c19(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), P(head(z0))) ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c16(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c16(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c16(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c17(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c18(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c19(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), P(head(z0))) ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c16(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c16(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c16(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) K tuples:none Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c17_1, c18_1, c19_2, c20_1, c21_2, c22_1, c23_2, c14_1, c15_1, c16_1 ---------------------------------------- (87) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing nodes: ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c16(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c16(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c16(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ---------------------------------------- (88) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c17(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c18(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c19(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), P(head(z0))) ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c17(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c18(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c19(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), P(head(z0))) ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) K tuples:none Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c17_1, c18_1, c19_2, c20_1, c21_2, c22_1, c23_2, c14_1, c15_1, c16_1 ---------------------------------------- (89) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(z0, z1, z2) -> c17(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) by ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c17(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c17(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c17(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ---------------------------------------- (90) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c18(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c19(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), P(head(z0))) ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c17(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c17(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c17(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c18(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c19(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), P(head(z0))) ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c17(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c17(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c17(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) K tuples:none Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c18_1, c19_2, c20_1, c21_2, c22_1, c23_2, c14_1, c15_1, c16_1, c17_1 ---------------------------------------- (91) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing nodes: ADDLISTS(nil, x1, x2) -> c17(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c17(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c17(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ---------------------------------------- (92) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c18(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c19(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), P(head(z0))) ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c18(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c19(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), P(head(z0))) ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) K tuples:none Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c18_1, c19_2, c20_1, c21_2, c22_1, c23_2, c14_1, c15_1, c16_1, c17_1 ---------------------------------------- (93) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(z0, z1, z2) -> c18(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) by ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c18(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c18(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c18(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ---------------------------------------- (94) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c19(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), P(head(z0))) ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c18(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c18(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c18(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c19(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), P(head(z0))) ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c18(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c18(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c18(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) K tuples:none Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c19_2, c20_1, c21_2, c22_1, c23_2, c14_1, c15_1, c16_1, c17_1, c18_1 ---------------------------------------- (95) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing nodes: ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c18(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c18(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c18(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ---------------------------------------- (96) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c19(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), P(head(z0))) ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c19(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), P(head(z0))) ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) K tuples:none Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c19_2, c20_1, c21_2, c22_1, c23_2, c14_1, c15_1, c16_1, c17_1, c18_1 ---------------------------------------- (97) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(z0, z1, z2) -> c19(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), P(head(z0))) by ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(nil, x1, x2) -> c19(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(nil, x1, x2) -> c19(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(nil, x1, x2) -> c19(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(nil))) ---------------------------------------- (98) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(nil, x1, x2) -> c19(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(nil, x1, x2) -> c19(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(nil, x1, x2) -> c19(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(nil))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(nil, x1, x2) -> c19(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(nil, x1, x2) -> c19(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(nil, x1, x2) -> c19(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(nil))) K tuples:none Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c20_1, c21_2, c22_1, c23_2, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2 ---------------------------------------- (99) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: ADDLISTS(nil, x1, x2) -> c19(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(nil))) ADDLISTS(nil, x1, x2) -> c19(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(nil))) ADDLISTS(nil, x1, x2) -> c19(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(nil))) ---------------------------------------- (100) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) K tuples:none Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c20_1, c21_2, c22_1, c23_2, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2 ---------------------------------------- (101) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (102) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) K tuples:none Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c20_1, c21_2, c22_1, c23_2, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1 ---------------------------------------- (103) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1))) Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) We considered the (Usable) Rules: isZero(0) -> true isZero(s(z0)) -> false And the Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) The order we found is given by the following interpretation: Polynomial interpretation : POL(0) = 0 POL(ADDLISTS(x_1, x_2, x_3)) = [1] POL(APPEND(x_1, x_2)) = 0 POL(IF(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9)) = x_3 POL(INC(x_1)) = 0 POL(P(x_1)) = 0 POL(append(x_1, x_2)) = [1] + x_1 + x_2 POL(c12(x_1)) = x_1 POL(c14(x_1)) = x_1 POL(c15(x_1)) = x_1 POL(c16(x_1)) = x_1 POL(c17(x_1)) = x_1 POL(c18(x_1)) = x_1 POL(c19(x_1)) = x_1 POL(c19(x_1, x_2)) = x_1 + x_2 POL(c20(x_1)) = x_1 POL(c21(x_1, x_2)) = x_1 + x_2 POL(c22(x_1)) = x_1 POL(c23(x_1, x_2)) = x_1 + x_2 POL(c27(x_1)) = x_1 POL(c28(x_1)) = x_1 POL(c8(x_1)) = x_1 POL(c9(x_1)) = x_1 POL(cons(x_1, x_2)) = 0 POL(false) = [1] POL(head(x_1)) = 0 POL(inc(x_1)) = [1] + x_1 POL(isEmpty(x_1)) = [1] + x_1 POL(isZero(x_1)) = [1] POL(nil) = 0 POL(p(x_1)) = [1] + x_1 POL(s(x_1)) = 0 POL(tail(x_1)) = 0 POL(true) = [1] ---------------------------------------- (104) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c20_1, c21_2, c22_1, c23_2, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1 ---------------------------------------- (105) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(z0, z1, z2) -> c20(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) by ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c20(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c20(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c20(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ---------------------------------------- (106) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c20(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c20(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c20(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c20(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c20(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c20(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c21_2, c22_1, c23_2, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1 ---------------------------------------- (107) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing nodes: ADDLISTS(nil, x1, x2) -> c20(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c20(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c20(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ---------------------------------------- (108) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c21_2, c22_1, c23_2, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1 ---------------------------------------- (109) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(z0, z1, z2) -> c21(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), INC(head(z1))) by ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), INC(head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(nil, x1, x2) -> c21(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), INC(head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(nil, x1, x2) -> c21(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), INC(head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(nil, x1, x2) -> c21(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ---------------------------------------- (110) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), INC(head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(nil, x1, x2) -> c21(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), INC(head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(nil, x1, x2) -> c21(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), INC(head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(nil, x1, x2) -> c21(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), INC(head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(nil, x1, x2) -> c21(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), INC(head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(nil, x1, x2) -> c21(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), INC(head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(nil, x1, x2) -> c21(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c22_1, c23_2, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2 ---------------------------------------- (111) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing nodes: ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), INC(head(nil))) ---------------------------------------- (112) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), INC(head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(nil, x1, x2) -> c21(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), INC(head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(nil, x1, x2) -> c21(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(nil, x1, x2) -> c21(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), INC(head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(nil, x1, x2) -> c21(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), INC(head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(nil, x1, x2) -> c21(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(nil, x1, x2) -> c21(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c22_1, c23_2, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2 ---------------------------------------- (113) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 5 trailing tuple parts ---------------------------------------- (114) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c22_1, c23_2, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1 ---------------------------------------- (115) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1))) Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) We considered the (Usable) Rules:none And the Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) The order we found is given by the following interpretation: Polynomial interpretation : POL(0) = [1] POL(ADDLISTS(x_1, x_2, x_3)) = [1] POL(APPEND(x_1, x_2)) = 0 POL(IF(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9)) = [1] POL(INC(x_1)) = 0 POL(P(x_1)) = 0 POL(append(x_1, x_2)) = [1] + x_2 POL(c12(x_1)) = x_1 POL(c14(x_1)) = x_1 POL(c15(x_1)) = x_1 POL(c16(x_1)) = x_1 POL(c17(x_1)) = x_1 POL(c18(x_1)) = x_1 POL(c19(x_1)) = x_1 POL(c19(x_1, x_2)) = x_1 + x_2 POL(c20(x_1)) = x_1 POL(c21(x_1)) = x_1 POL(c21(x_1, x_2)) = x_1 + x_2 POL(c22(x_1)) = x_1 POL(c23(x_1, x_2)) = x_1 + x_2 POL(c27(x_1)) = x_1 POL(c28(x_1)) = x_1 POL(c8(x_1)) = x_1 POL(c9(x_1)) = x_1 POL(cons(x_1, x_2)) = 0 POL(false) = 0 POL(head(x_1)) = 0 POL(inc(x_1)) = [1] + x_1 POL(isEmpty(x_1)) = 0 POL(isZero(x_1)) = [1] POL(nil) = 0 POL(p(x_1)) = [1] POL(s(x_1)) = 0 POL(tail(x_1)) = 0 POL(true) = 0 ---------------------------------------- (116) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c22_1, c23_2, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1 ---------------------------------------- (117) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(z0, z1, z2) -> c22(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1)))) by ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c22(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c22(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c22(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ---------------------------------------- (118) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c22(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c22(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c22(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c22(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c22(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c22(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c23_2, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1 ---------------------------------------- (119) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing nodes: ADDLISTS(nil, x1, x2) -> c22(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c22(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(nil, x1, x2) -> c22(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ---------------------------------------- (120) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c23_2, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1 ---------------------------------------- (121) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(z0, z1, z2) -> c23(IF(isEmpty(z0), isEmpty(z1), isZero(head(z0)), tail(z0), tail(z1), cons(p(head(z0)), tail(z0)), cons(inc(head(z1)), tail(z1)), z2, append(z2, head(z1))), APPEND(z2, head(z1))) by ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), APPEND(nil, head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(nil, x1, x2) -> c23(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(nil, x1, x2) -> c23(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(nil, x1, x2) -> c23(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ---------------------------------------- (122) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), APPEND(nil, head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(nil, x1, x2) -> c23(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(nil, x1, x2) -> c23(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(nil, x1, x2) -> c23(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), APPEND(nil, head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(nil, x1, x2) -> c23(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(nil, x1, x2) -> c23(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(nil, x1, x2) -> c23(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2 ---------------------------------------- (123) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 5 trailing tuple parts ---------------------------------------- (124) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1 ---------------------------------------- (125) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1))) Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) We considered the (Usable) Rules:none And the Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) The order we found is given by the following interpretation: Polynomial interpretation : POL(0) = 0 POL(ADDLISTS(x_1, x_2, x_3)) = [1] POL(APPEND(x_1, x_2)) = 0 POL(IF(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9)) = [1] POL(INC(x_1)) = 0 POL(P(x_1)) = 0 POL(append(x_1, x_2)) = [1] + x_2 POL(c12(x_1)) = x_1 POL(c14(x_1)) = x_1 POL(c15(x_1)) = x_1 POL(c16(x_1)) = x_1 POL(c17(x_1)) = x_1 POL(c18(x_1)) = x_1 POL(c19(x_1)) = x_1 POL(c19(x_1, x_2)) = x_1 + x_2 POL(c20(x_1)) = x_1 POL(c21(x_1)) = x_1 POL(c21(x_1, x_2)) = x_1 + x_2 POL(c22(x_1)) = x_1 POL(c23(x_1)) = x_1 POL(c23(x_1, x_2)) = x_1 + x_2 POL(c27(x_1)) = x_1 POL(c28(x_1)) = x_1 POL(c8(x_1)) = x_1 POL(c9(x_1)) = x_1 POL(cons(x_1, x_2)) = 0 POL(false) = 0 POL(head(x_1)) = 0 POL(inc(x_1)) = [1] + x_1 POL(isEmpty(x_1)) = 0 POL(isZero(x_1)) = [1] POL(nil) = 0 POL(p(x_1)) = [1] + x_1 POL(s(x_1)) = 0 POL(tail(x_1)) = 0 POL(true) = [1] ---------------------------------------- (126) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1 ---------------------------------------- (127) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(x0, x1, nil) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) by ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, nil) -> c14(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, nil) -> c14(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, nil) -> c14(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ---------------------------------------- (128) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, nil) -> c14(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, nil) -> c14(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, nil) -> c14(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, nil) -> c14(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, nil) -> c14(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, nil) -> c14(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1 ---------------------------------------- (129) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing nodes: ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(nil, x1, nil) -> c14(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, nil) -> c14(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, nil) -> c14(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ---------------------------------------- (130) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1 ---------------------------------------- (131) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(x0, x1, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) by ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(nil, x1, cons(x2, x3)) -> c14(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(nil, x1, cons(x2, x3)) -> c14(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(nil, x1, cons(x2, x3)) -> c14(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ---------------------------------------- (132) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(nil, x1, cons(x2, x3)) -> c14(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(nil, x1, cons(x2, x3)) -> c14(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(nil, x1, cons(x2, x3)) -> c14(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(nil, x1, cons(x2, x3)) -> c14(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(nil, x1, cons(x2, x3)) -> c14(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(nil, x1, cons(x2, x3)) -> c14(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1 ---------------------------------------- (133) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing nodes: ADDLISTS(nil, x1, cons(x2, x3)) -> c14(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(nil, x1, cons(x2, x3)) -> c14(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(nil, x1, cons(x2, x3)) -> c14(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ---------------------------------------- (134) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1 ---------------------------------------- (135) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) by ADDLISTS(x0, cons(z0, x2), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, x2)), isZero(head(x0)), tail(x0), tail(cons(z0, x2)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, x2))), tail(cons(z0, x2))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z2, x2), cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(cons(z2, x2)), isZero(head(x0)), tail(x0), tail(cons(z2, x2)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z2, x2))), tail(cons(z2, x2))), cons(z0, z1), cons(z0, append(z1, z2)))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ---------------------------------------- (136) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1 ---------------------------------------- (137) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ---------------------------------------- (138) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1 ---------------------------------------- (139) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) by ADDLISTS(x0, cons(x1, x2), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(x1, x2)), isZero(head(x0)), tail(x0), tail(cons(x1, x2)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(x1, x2))), x2), nil, cons(head(cons(x1, x2)), nil))) ADDLISTS(x0, cons(x1, x2), cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(cons(x1, x2)), isZero(head(x0)), tail(x0), tail(cons(x1, x2)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(x1, x2))), x2), cons(z0, z1), cons(z0, append(z1, head(cons(x1, x2)))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ---------------------------------------- (140) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1 ---------------------------------------- (141) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ---------------------------------------- (142) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1 ---------------------------------------- (143) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) by ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, nil, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(z0, z1), cons(z0, append(z1, head(nil))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c14(IF(isEmpty(nil), isEmpty(nil), isZero(head(nil)), tail(nil), tail(nil), cons(p(head(nil)), nil), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c14(IF(isEmpty(nil), isEmpty(nil), isZero(head(nil)), nil, tail(nil), cons(p(head(nil)), tail(nil)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c14(IF(true, isEmpty(nil), isZero(head(nil)), tail(nil), tail(nil), cons(p(head(nil)), tail(nil)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ---------------------------------------- (144) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c14(IF(isEmpty(nil), isEmpty(nil), isZero(head(nil)), tail(nil), tail(nil), cons(p(head(nil)), nil), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c14(IF(isEmpty(nil), isEmpty(nil), isZero(head(nil)), nil, tail(nil), cons(p(head(nil)), tail(nil)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c14(IF(true, isEmpty(nil), isZero(head(nil)), tail(nil), tail(nil), cons(p(head(nil)), tail(nil)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c14(IF(isEmpty(nil), isEmpty(nil), isZero(head(nil)), tail(nil), tail(nil), cons(p(head(nil)), nil), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c14(IF(isEmpty(nil), isEmpty(nil), isZero(head(nil)), nil, tail(nil), cons(p(head(nil)), tail(nil)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c14(IF(true, isEmpty(nil), isZero(head(nil)), tail(nil), tail(nil), cons(p(head(nil)), tail(nil)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1 ---------------------------------------- (145) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing nodes: ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c14(IF(isEmpty(nil), isEmpty(nil), isZero(head(nil)), nil, tail(nil), cons(p(head(nil)), tail(nil)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c14(IF(isEmpty(nil), isEmpty(nil), isZero(head(nil)), tail(nil), tail(nil), cons(p(head(nil)), nil), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c14(IF(true, isEmpty(nil), isZero(head(nil)), tail(nil), tail(nil), cons(p(head(nil)), tail(nil)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ---------------------------------------- (146) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1 ---------------------------------------- (147) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) by ADDLISTS(x0, cons(x1, x2), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(x1, x2)), isZero(head(x0)), tail(x0), tail(cons(x1, x2)), cons(p(head(x0)), tail(x0)), cons(inc(x1), tail(cons(x1, x2))), nil, cons(head(cons(x1, x2)), nil))) ADDLISTS(x0, cons(x1, x2), cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(cons(x1, x2)), isZero(head(x0)), tail(x0), tail(cons(x1, x2)), cons(p(head(x0)), tail(x0)), cons(inc(x1), tail(cons(x1, x2))), cons(z0, z1), cons(z0, append(z1, head(cons(x1, x2)))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ---------------------------------------- (148) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1 ---------------------------------------- (149) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ---------------------------------------- (150) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1 ---------------------------------------- (151) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) by ADDLISTS(cons(x0, x1), x2, nil) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(x2), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(x2), cons(p(head(cons(x0, x1))), x1), cons(inc(head(x2)), tail(x2)), nil, cons(head(x2), nil))) ADDLISTS(cons(x0, x1), x2, cons(z0, z1)) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(x2), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(x2), cons(p(head(cons(x0, x1))), x1), cons(inc(head(x2)), tail(x2)), cons(z0, z1), cons(z0, append(z1, head(x2))))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(nil), cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), nil), x3, append(x3, head(nil)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), true, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(nil), cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ---------------------------------------- (152) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), true, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(nil), cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), true, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(nil), cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1 ---------------------------------------- (153) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing nodes: ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), true, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(nil), cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ---------------------------------------- (154) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1 ---------------------------------------- (155) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) by ADDLISTS(cons(x0, x1), x2, nil) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(x2), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(x2), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(x2)), tail(x2)), nil, cons(head(x2), nil))) ADDLISTS(cons(x0, x1), x2, cons(z0, z1)) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(x2), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(x2), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(x2)), tail(x2)), cons(z0, z1), cons(z0, append(z1, head(x2))))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(nil), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), nil), x3, append(x3, head(nil)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), true, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(nil), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ---------------------------------------- (156) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), true, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(nil), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), true, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(nil), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1 ---------------------------------------- (157) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing nodes: ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), true, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(nil), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ---------------------------------------- (158) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1 ---------------------------------------- (159) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) by ADDLISTS(x0, cons(x1, x2), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(x1, x2)), isZero(head(x0)), tail(x0), x2, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), nil, cons(head(cons(x1, x2)), nil))) ADDLISTS(x0, cons(x1, x2), cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(cons(x1, x2)), isZero(head(x0)), tail(x0), x2, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), cons(z0, z1), cons(z0, append(z1, head(cons(x1, x2)))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), x2, cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, x2, cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), x2, cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ---------------------------------------- (160) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), x2, cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, x2, cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), x2, cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), x2, cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, x2, cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), x2, cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1 ---------------------------------------- (161) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), x2, cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, x2, cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), x2, cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ---------------------------------------- (162) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1 ---------------------------------------- (163) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(x0, nil, x2) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) by ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(x0, nil, cons(z0, z1)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(z0, z1), cons(z0, append(z1, head(nil))))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c14(IF(isEmpty(nil), isEmpty(nil), isZero(head(nil)), tail(nil), nil, cons(p(head(nil)), nil), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c14(IF(isEmpty(nil), isEmpty(nil), isZero(head(nil)), nil, nil, cons(p(head(nil)), tail(nil)), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c14(IF(true, isEmpty(nil), isZero(head(nil)), tail(nil), nil, cons(p(head(nil)), tail(nil)), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ---------------------------------------- (164) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, nil, x1) -> c14(IF(isEmpty(nil), isEmpty(nil), isZero(head(nil)), tail(nil), nil, cons(p(head(nil)), nil), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c14(IF(isEmpty(nil), isEmpty(nil), isZero(head(nil)), nil, nil, cons(p(head(nil)), tail(nil)), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c14(IF(true, isEmpty(nil), isZero(head(nil)), tail(nil), nil, cons(p(head(nil)), tail(nil)), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, nil, x1) -> c14(IF(isEmpty(nil), isEmpty(nil), isZero(head(nil)), tail(nil), nil, cons(p(head(nil)), nil), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c14(IF(isEmpty(nil), isEmpty(nil), isZero(head(nil)), nil, nil, cons(p(head(nil)), tail(nil)), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c14(IF(true, isEmpty(nil), isZero(head(nil)), tail(nil), nil, cons(p(head(nil)), tail(nil)), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1 ---------------------------------------- (165) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing nodes: ADDLISTS(nil, nil, x1) -> c14(IF(true, isEmpty(nil), isZero(head(nil)), tail(nil), nil, cons(p(head(nil)), tail(nil)), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c14(IF(isEmpty(nil), isEmpty(nil), isZero(head(nil)), nil, nil, cons(p(head(nil)), tail(nil)), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c14(IF(isEmpty(nil), isEmpty(nil), isZero(head(nil)), tail(nil), nil, cons(p(head(nil)), nil), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ---------------------------------------- (166) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1 ---------------------------------------- (167) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) by ADDLISTS(cons(x0, x1), x2, nil) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(x2), isZero(head(cons(x0, x1))), x1, tail(x2), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(x2)), tail(x2)), nil, cons(head(x2), nil))) ADDLISTS(cons(x0, x1), x2, cons(z0, z1)) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(x2), isZero(head(cons(x0, x1))), x1, tail(x2), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(x2)), tail(x2)), cons(z0, z1), cons(z0, append(z1, head(x2))))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), x1, tail(nil), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(nil)), nil), x3, append(x3, head(nil)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), x1, z1, cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), x1, nil, cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), true, isZero(head(cons(x0, x1))), x1, tail(nil), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ---------------------------------------- (168) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), true, isZero(head(cons(x0, x1))), x1, tail(nil), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), true, isZero(head(cons(x0, x1))), x1, tail(nil), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1 ---------------------------------------- (169) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing nodes: ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), true, isZero(head(cons(x0, x1))), x1, tail(nil), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ---------------------------------------- (170) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1 ---------------------------------------- (171) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) by ADDLISTS(cons(x0, x1), x2, nil) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(x2), isZero(x0), tail(cons(x0, x1)), tail(x2), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(x2)), tail(x2)), nil, cons(head(x2), nil))) ADDLISTS(cons(x0, x1), x2, cons(z0, z1)) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(x2), isZero(x0), tail(cons(x0, x1)), tail(x2), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(x2)), tail(x2)), cons(z0, z1), cons(z0, append(z1, head(x2))))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(x0), tail(cons(x0, x1)), tail(nil), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(nil)), nil), x3, append(x3, head(nil)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(x0), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(x0), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), true, isZero(x0), tail(cons(x0, x1)), tail(nil), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ---------------------------------------- (172) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), true, isZero(x0), tail(cons(x0, x1)), tail(nil), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), true, isZero(x0), tail(cons(x0, x1)), tail(nil), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1 ---------------------------------------- (173) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing nodes: ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), true, isZero(x0), tail(cons(x0, x1)), tail(nil), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ---------------------------------------- (174) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1 ---------------------------------------- (175) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(x0, cons(z0, z1), x2) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) by ADDLISTS(x0, cons(x1, x2), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(x1, x2)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), nil, cons(head(cons(x1, x2)), nil))) ADDLISTS(x0, cons(x1, x2), cons(z0, z1)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(x1, x2)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), cons(z0, z1), cons(z0, append(z1, head(cons(x1, x2)))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), false, isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), false, isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), false, isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), false, isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(true, false, isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ---------------------------------------- (176) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), false, isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), false, isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(true, false, isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), false, isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), false, isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(true, false, isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1 ---------------------------------------- (177) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(true, false, isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), false, isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c14(IF(isEmpty(nil), false, isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ---------------------------------------- (178) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c14_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1 ---------------------------------------- (179) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(cons(z0, z1), x1, x2) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) by ADDLISTS(cons(x0, x1), x2, nil) -> c14(IF(false, isEmpty(x2), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(x2), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(x2)), tail(x2)), nil, cons(head(x2), nil))) ADDLISTS(cons(x0, x1), x2, cons(z0, z1)) -> c14(IF(false, isEmpty(x2), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(x2), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(x2)), tail(x2)), cons(z0, z1), cons(z0, append(z1, head(x2))))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(false, isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(false, isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(false, isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(nil), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(nil)), nil), x3, append(x3, head(nil)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(false, isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(false, isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(false, isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(false, false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(false, true, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(nil), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ---------------------------------------- (180) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(false, true, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(nil), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(false, true, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(nil), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1 ---------------------------------------- (181) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing nodes: ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(false, true, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(nil), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ---------------------------------------- (182) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1 ---------------------------------------- (183) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(x0, x1, nil) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) by ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, nil) -> c15(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, nil) -> c15(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, nil) -> c15(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ---------------------------------------- (184) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, nil) -> c15(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, nil) -> c15(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, nil) -> c15(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, nil) -> c15(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, nil) -> c15(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, nil) -> c15(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1 ---------------------------------------- (185) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing nodes: ADDLISTS(nil, x1, nil) -> c15(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, nil) -> c15(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(nil, x1, nil) -> c15(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ---------------------------------------- (186) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1 ---------------------------------------- (187) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(x0, x1, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) by ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(nil, x1, cons(x2, x3)) -> c15(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(nil, x1, cons(x2, x3)) -> c15(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(nil, x1, cons(x2, x3)) -> c15(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ---------------------------------------- (188) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(nil, x1, cons(x2, x3)) -> c15(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(nil, x1, cons(x2, x3)) -> c15(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(nil, x1, cons(x2, x3)) -> c15(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(nil, x1, cons(x2, x3)) -> c15(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(nil, x1, cons(x2, x3)) -> c15(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(nil, x1, cons(x2, x3)) -> c15(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1 ---------------------------------------- (189) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing nodes: ADDLISTS(nil, x1, cons(x2, x3)) -> c15(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(nil, x1, cons(x2, x3)) -> c15(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(nil, x1, cons(x2, x3)) -> c15(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ---------------------------------------- (190) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1 ---------------------------------------- (191) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) by ADDLISTS(x0, cons(z0, x2), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, x2)), isZero(head(x0)), tail(x0), tail(cons(z0, x2)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, x2))), tail(cons(z0, x2))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z2, x2), cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(cons(z2, x2)), isZero(head(x0)), tail(x0), tail(cons(z2, x2)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z2, x2))), tail(cons(z2, x2))), cons(z0, z1), cons(z0, append(z1, z2)))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ---------------------------------------- (192) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1 ---------------------------------------- (193) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ---------------------------------------- (194) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1 ---------------------------------------- (195) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) by ADDLISTS(x0, cons(x1, x2), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(x1, x2)), isZero(head(x0)), tail(x0), tail(cons(x1, x2)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(x1, x2))), x2), nil, cons(head(cons(x1, x2)), nil))) ADDLISTS(x0, cons(x1, x2), cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(cons(x1, x2)), isZero(head(x0)), tail(x0), tail(cons(x1, x2)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(x1, x2))), x2), cons(z0, z1), cons(z0, append(z1, head(cons(x1, x2)))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ---------------------------------------- (196) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1 ---------------------------------------- (197) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ---------------------------------------- (198) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1 ---------------------------------------- (199) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) by ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, nil, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(z0, z1), cons(z0, append(z1, head(nil))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c15(IF(isEmpty(nil), isEmpty(nil), isZero(head(nil)), tail(nil), tail(nil), cons(p(head(nil)), nil), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c15(IF(isEmpty(nil), isEmpty(nil), isZero(head(nil)), nil, tail(nil), cons(p(head(nil)), tail(nil)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c15(IF(true, isEmpty(nil), isZero(head(nil)), tail(nil), tail(nil), cons(p(head(nil)), tail(nil)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ---------------------------------------- (200) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c15(IF(isEmpty(nil), isEmpty(nil), isZero(head(nil)), tail(nil), tail(nil), cons(p(head(nil)), nil), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c15(IF(isEmpty(nil), isEmpty(nil), isZero(head(nil)), nil, tail(nil), cons(p(head(nil)), tail(nil)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c15(IF(true, isEmpty(nil), isZero(head(nil)), tail(nil), tail(nil), cons(p(head(nil)), tail(nil)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c15(IF(isEmpty(nil), isEmpty(nil), isZero(head(nil)), tail(nil), tail(nil), cons(p(head(nil)), nil), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c15(IF(isEmpty(nil), isEmpty(nil), isZero(head(nil)), nil, tail(nil), cons(p(head(nil)), tail(nil)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c15(IF(true, isEmpty(nil), isZero(head(nil)), tail(nil), tail(nil), cons(p(head(nil)), tail(nil)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1 ---------------------------------------- (201) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing nodes: ADDLISTS(nil, nil, x1) -> c15(IF(isEmpty(nil), isEmpty(nil), isZero(head(nil)), nil, tail(nil), cons(p(head(nil)), tail(nil)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c15(IF(isEmpty(nil), isEmpty(nil), isZero(head(nil)), tail(nil), tail(nil), cons(p(head(nil)), nil), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c15(IF(true, isEmpty(nil), isZero(head(nil)), tail(nil), tail(nil), cons(p(head(nil)), tail(nil)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ---------------------------------------- (202) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1 ---------------------------------------- (203) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) by ADDLISTS(x0, cons(x1, x2), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(x1, x2)), isZero(head(x0)), tail(x0), tail(cons(x1, x2)), cons(p(head(x0)), tail(x0)), cons(inc(x1), tail(cons(x1, x2))), nil, cons(head(cons(x1, x2)), nil))) ADDLISTS(x0, cons(x1, x2), cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(cons(x1, x2)), isZero(head(x0)), tail(x0), tail(cons(x1, x2)), cons(p(head(x0)), tail(x0)), cons(inc(x1), tail(cons(x1, x2))), cons(z0, z1), cons(z0, append(z1, head(cons(x1, x2)))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ---------------------------------------- (204) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1 ---------------------------------------- (205) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ---------------------------------------- (206) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1 ---------------------------------------- (207) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) by ADDLISTS(cons(x0, x1), x2, nil) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(x2), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(x2), cons(p(head(cons(x0, x1))), x1), cons(inc(head(x2)), tail(x2)), nil, cons(head(x2), nil))) ADDLISTS(cons(x0, x1), x2, cons(z0, z1)) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(x2), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(x2), cons(p(head(cons(x0, x1))), x1), cons(inc(head(x2)), tail(x2)), cons(z0, z1), cons(z0, append(z1, head(x2))))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(nil), cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), nil), x3, append(x3, head(nil)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), true, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(nil), cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ---------------------------------------- (208) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), true, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(nil), cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), true, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(nil), cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1 ---------------------------------------- (209) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing nodes: ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), true, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(nil), cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ---------------------------------------- (210) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1 ---------------------------------------- (211) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) by ADDLISTS(cons(x0, x1), x2, nil) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(x2), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(x2), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(x2)), tail(x2)), nil, cons(head(x2), nil))) ADDLISTS(cons(x0, x1), x2, cons(z0, z1)) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(x2), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(x2), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(x2)), tail(x2)), cons(z0, z1), cons(z0, append(z1, head(x2))))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(nil), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), nil), x3, append(x3, head(nil)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), true, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(nil), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ---------------------------------------- (212) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), true, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(nil), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), true, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(nil), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1 ---------------------------------------- (213) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing nodes: ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), true, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(nil), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ---------------------------------------- (214) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1 ---------------------------------------- (215) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) by ADDLISTS(x0, cons(x1, x2), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(x1, x2)), isZero(head(x0)), tail(x0), x2, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), nil, cons(head(cons(x1, x2)), nil))) ADDLISTS(x0, cons(x1, x2), cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(cons(x1, x2)), isZero(head(x0)), tail(x0), x2, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), cons(z0, z1), cons(z0, append(z1, head(cons(x1, x2)))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), x2, cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, x2, cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), x2, cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ---------------------------------------- (216) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), x2, cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, x2, cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), x2, cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), x2, cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, x2, cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), x2, cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1 ---------------------------------------- (217) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), x2, cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), x2, cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, x2, cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ---------------------------------------- (218) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1 ---------------------------------------- (219) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(x0, nil, x2) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) by ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(x0, nil, cons(z0, z1)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(z0, z1), cons(z0, append(z1, head(nil))))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c15(IF(isEmpty(nil), isEmpty(nil), isZero(head(nil)), tail(nil), nil, cons(p(head(nil)), nil), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c15(IF(isEmpty(nil), isEmpty(nil), isZero(head(nil)), nil, nil, cons(p(head(nil)), tail(nil)), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c15(IF(true, isEmpty(nil), isZero(head(nil)), tail(nil), nil, cons(p(head(nil)), tail(nil)), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ---------------------------------------- (220) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, nil, x1) -> c15(IF(isEmpty(nil), isEmpty(nil), isZero(head(nil)), tail(nil), nil, cons(p(head(nil)), nil), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c15(IF(isEmpty(nil), isEmpty(nil), isZero(head(nil)), nil, nil, cons(p(head(nil)), tail(nil)), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c15(IF(true, isEmpty(nil), isZero(head(nil)), tail(nil), nil, cons(p(head(nil)), tail(nil)), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, nil, x1) -> c15(IF(isEmpty(nil), isEmpty(nil), isZero(head(nil)), tail(nil), nil, cons(p(head(nil)), nil), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c15(IF(isEmpty(nil), isEmpty(nil), isZero(head(nil)), nil, nil, cons(p(head(nil)), tail(nil)), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c15(IF(true, isEmpty(nil), isZero(head(nil)), tail(nil), nil, cons(p(head(nil)), tail(nil)), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1 ---------------------------------------- (221) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing nodes: ADDLISTS(nil, nil, x1) -> c15(IF(isEmpty(nil), isEmpty(nil), isZero(head(nil)), tail(nil), nil, cons(p(head(nil)), nil), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c15(IF(isEmpty(nil), isEmpty(nil), isZero(head(nil)), nil, nil, cons(p(head(nil)), tail(nil)), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(nil, nil, x1) -> c15(IF(true, isEmpty(nil), isZero(head(nil)), tail(nil), nil, cons(p(head(nil)), tail(nil)), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ---------------------------------------- (222) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1 ---------------------------------------- (223) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) by ADDLISTS(cons(x0, x1), x2, nil) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(x2), isZero(head(cons(x0, x1))), x1, tail(x2), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(x2)), tail(x2)), nil, cons(head(x2), nil))) ADDLISTS(cons(x0, x1), x2, cons(z0, z1)) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(x2), isZero(head(cons(x0, x1))), x1, tail(x2), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(x2)), tail(x2)), cons(z0, z1), cons(z0, append(z1, head(x2))))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), x1, tail(nil), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(nil)), nil), x3, append(x3, head(nil)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), x1, z1, cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), x1, nil, cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), true, isZero(head(cons(x0, x1))), x1, tail(nil), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ---------------------------------------- (224) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), true, isZero(head(cons(x0, x1))), x1, tail(nil), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), true, isZero(head(cons(x0, x1))), x1, tail(nil), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1 ---------------------------------------- (225) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing nodes: ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), true, isZero(head(cons(x0, x1))), x1, tail(nil), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ---------------------------------------- (226) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1 ---------------------------------------- (227) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) by ADDLISTS(cons(x0, x1), x2, nil) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(x2), isZero(x0), tail(cons(x0, x1)), tail(x2), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(x2)), tail(x2)), nil, cons(head(x2), nil))) ADDLISTS(cons(x0, x1), x2, cons(z0, z1)) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(x2), isZero(x0), tail(cons(x0, x1)), tail(x2), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(x2)), tail(x2)), cons(z0, z1), cons(z0, append(z1, head(x2))))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(x0), tail(cons(x0, x1)), tail(nil), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(nil)), nil), x3, append(x3, head(nil)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(x0), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(x0), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), true, isZero(x0), tail(cons(x0, x1)), tail(nil), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ---------------------------------------- (228) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), true, isZero(x0), tail(cons(x0, x1)), tail(nil), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), true, isZero(x0), tail(cons(x0, x1)), tail(nil), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1 ---------------------------------------- (229) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing nodes: ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), true, isZero(x0), tail(cons(x0, x1)), tail(nil), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ---------------------------------------- (230) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1 ---------------------------------------- (231) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(x0, cons(z0, z1), x2) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) by ADDLISTS(x0, cons(x1, x2), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(x1, x2)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), nil, cons(head(cons(x1, x2)), nil))) ADDLISTS(x0, cons(x1, x2), cons(z0, z1)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(x1, x2)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), cons(z0, z1), cons(z0, append(z1, head(cons(x1, x2)))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), false, isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), false, isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), false, isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), false, isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(true, false, isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ---------------------------------------- (232) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), false, isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), false, isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(true, false, isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), false, isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), false, isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(true, false, isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1 ---------------------------------------- (233) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), false, isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(isEmpty(nil), false, isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c15(IF(true, false, isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ---------------------------------------- (234) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c15_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1 ---------------------------------------- (235) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(cons(z0, z1), x1, x2) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) by ADDLISTS(cons(x0, x1), x2, nil) -> c15(IF(false, isEmpty(x2), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(x2), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(x2)), tail(x2)), nil, cons(head(x2), nil))) ADDLISTS(cons(x0, x1), x2, cons(z0, z1)) -> c15(IF(false, isEmpty(x2), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(x2), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(x2)), tail(x2)), cons(z0, z1), cons(z0, append(z1, head(x2))))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(false, isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(false, isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(false, isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(nil), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(nil)), nil), x3, append(x3, head(nil)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(false, isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(false, isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(false, isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(false, false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(false, true, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(nil), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ---------------------------------------- (236) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(false, true, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(nil), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(false, true, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(nil), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1, c15_1 ---------------------------------------- (237) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing nodes: ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(false, true, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(nil), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ---------------------------------------- (238) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1, c15_1 ---------------------------------------- (239) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(x0, x1, nil) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) by ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, nil) -> c16(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, nil) -> c16(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, nil) -> c16(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ---------------------------------------- (240) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, nil) -> c16(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, nil) -> c16(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, nil) -> c16(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, nil) -> c16(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, nil) -> c16(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, nil) -> c16(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1, c15_1 ---------------------------------------- (241) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing nodes: ADDLISTS(nil, x1, nil) -> c16(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, nil) -> c16(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, nil) -> c16(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ---------------------------------------- (242) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1, c15_1 ---------------------------------------- (243) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(x0, x1, cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) by ADDLISTS(x0, x1, cons(x2, nil)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(nil, x1, cons(x2, x3)) -> c16(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(nil, x1, cons(x2, x3)) -> c16(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c16(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(nil, x1, cons(x2, x3)) -> c16(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ---------------------------------------- (244) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(nil, x1, cons(x2, x3)) -> c16(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(nil, x1, cons(x2, x3)) -> c16(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c16(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(nil, x1, cons(x2, x3)) -> c16(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(nil, x1, cons(x2, x3)) -> c16(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(nil, x1, cons(x2, x3)) -> c16(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c16(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(nil, x1, cons(x2, x3)) -> c16(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1, c15_1 ---------------------------------------- (245) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing nodes: ADDLISTS(nil, x1, cons(x2, x3)) -> c16(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), nil, tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(nil, x1, cons(x2, x3)) -> c16(IF(true, isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), tail(nil)), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(nil, x1, cons(x2, x3)) -> c16(IF(isEmpty(nil), isEmpty(x1), isZero(head(nil)), tail(nil), tail(x1), cons(p(head(nil)), nil), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c16(IF(isEmpty(x0), true, isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ---------------------------------------- (246) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1, c15_1 ---------------------------------------- (247) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) by ADDLISTS(x0, cons(z0, x2), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, x2)), isZero(head(x0)), tail(x0), tail(cons(z0, x2)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, x2))), tail(cons(z0, x2))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z2, x2), cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(cons(z2, x2)), isZero(head(x0)), tail(x0), tail(cons(z2, x2)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z2, x2))), tail(cons(z2, x2))), cons(z0, z1), cons(z0, append(z1, z2)))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(nil, cons(x1, x2), x3) -> c16(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(nil, cons(x1, x2), x3) -> c16(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(nil, cons(x1, x2), x3) -> c16(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ---------------------------------------- (248) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(nil, cons(x1, x2), x3) -> c16(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(nil, cons(x1, x2), x3) -> c16(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(nil, cons(x1, x2), x3) -> c16(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(nil, cons(x1, x2), x3) -> c16(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(nil, cons(x1, x2), x3) -> c16(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(nil, cons(x1, x2), x3) -> c16(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1, c15_1 ---------------------------------------- (249) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: ADDLISTS(nil, cons(x1, x2), x3) -> c16(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(nil, cons(x1, x2), x3) -> c16(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(nil, cons(x1, x2), x3) -> c16(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ---------------------------------------- (250) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1, c15_1 ---------------------------------------- (251) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) by ADDLISTS(x0, cons(x1, x2), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(x1, x2)), isZero(head(x0)), tail(x0), tail(cons(x1, x2)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(x1, x2))), x2), nil, cons(head(cons(x1, x2)), nil))) ADDLISTS(x0, cons(x1, x2), cons(z0, z1)) -> c16(IF(isEmpty(x0), isEmpty(cons(x1, x2)), isZero(head(x0)), tail(x0), tail(cons(x1, x2)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(x1, x2))), x2), cons(z0, z1), cons(z0, append(z1, head(cons(x1, x2)))))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c16(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c16(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c16(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ---------------------------------------- (252) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c16(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c16(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c16(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c16(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c16(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c16(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1, c15_1 ---------------------------------------- (253) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: ADDLISTS(nil, cons(x1, x2), x3) -> c16(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), nil), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c16(IF(isEmpty(nil), isEmpty(cons(x1, x2)), isZero(head(nil)), nil, tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(nil, cons(x1, x2), x3) -> c16(IF(true, isEmpty(cons(x1, x2)), isZero(head(nil)), tail(nil), tail(cons(x1, x2)), cons(p(head(nil)), tail(nil)), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ---------------------------------------- (254) Obligation: Complexity Dependency Tuples Problem Rules: isEmpty(cons(z0, z1)) -> false isEmpty(nil) -> true isZero(0) -> true isZero(s(z0)) -> false head(cons(z0, z1)) -> z0 tail(cons(z0, z1)) -> z1 tail(nil) -> nil p(s(s(z0))) -> s(p(s(z0))) p(s(0)) -> 0 p(0) -> 0 inc(s(z0)) -> s(inc(z0)) inc(0) -> s(0) append(nil, z0) -> cons(z0, nil) append(cons(z0, z1), z2) -> cons(z0, append(z1, z2)) Tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) S tuples: APPEND(cons(z0, z1), z2) -> c8(APPEND(z1, z2)) P(s(s(z0))) -> c9(P(s(z0))) INC(s(z0)) -> c12(INC(z0)) IF(false, false, false, z0, z1, z2, z3, z4, z5) -> c27(ADDLISTS(z2, z3, z4)) IF(false, false, true, z0, z1, z2, z3, z4, z5) -> c28(ADDLISTS(z0, z1, z5)) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c17(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c17(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c17(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c17(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c18(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c18(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c18(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c18(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), P(head(x0))) ADDLISTS(x0, x1, cons(z0, z1)) -> c19(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(x0, nil, x2) -> c19(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c19(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), P(head(x0))) ADDLISTS(cons(z0, z1), x1, x2) -> c19(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), P(head(cons(z0, z1)))) ADDLISTS(x0, x1, nil) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c20(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c20(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c20(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c20(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, nil) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil)), INC(head(x1))) ADDLISTS(x0, x1, cons(z0, z1)) -> c21(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c21(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), INC(head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c21(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), INC(head(x1))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, nil, x2) -> c21(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(x0, x1, nil) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(z0, z1)) -> c22(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1))))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(x0, nil, x2) -> c22(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c22(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x1, x2) -> c22(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1)))) ADDLISTS(x0, x1, cons(z0, z1)) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(z0, z1), cons(z0, append(z1, head(x1)))), APPEND(cons(z0, z1), head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, z0)), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(x0, nil, x2) -> c23(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), x2, append(x2, head(nil))), APPEND(x2, head(nil))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, cons(z0, z1), x2) -> c23(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x2, append(x2, head(cons(z0, z1)))), APPEND(x2, head(cons(z0, z1)))) ADDLISTS(cons(z0, z1), x1, x2) -> c23(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), x2, append(x2, head(x1))), APPEND(x2, head(x1))) ADDLISTS(x0, x1, nil) -> c23(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c14(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c14(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c14(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c14(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c14(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c14(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c14(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c14(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c14(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c14(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c14(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c14(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c15(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c15(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), z1), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, nil, x1) -> c15(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(nil), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), nil), x1, append(x1, head(nil)))) ADDLISTS(x0, cons(s(z0), x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(s(z0), x2)), isZero(head(x0)), tail(x0), tail(cons(s(z0), x2)), cons(p(head(x0)), tail(x0)), cons(s(inc(z0)), tail(cons(s(z0), x2))), x3, append(x3, head(cons(s(z0), x2))))) ADDLISTS(x0, cons(0, x2), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(0, x2)), isZero(head(x0)), tail(x0), tail(cons(0, x2)), cons(p(head(x0)), tail(x0)), cons(s(0), tail(cons(0, x2))), x3, append(x3, head(cons(0, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(x1), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(head(cons(x0, x1))), x1), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), x1), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(s(z0)), x1), x2, x3) -> c15(IF(isEmpty(cons(s(s(z0)), x1)), isEmpty(x2), isZero(head(cons(s(s(z0)), x1))), tail(cons(s(s(z0)), x1)), tail(x2), cons(s(p(s(z0))), tail(cons(s(s(z0)), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(0), x1)), isEmpty(x2), isZero(head(cons(s(0), x1))), tail(cons(s(0), x1)), tail(x2), cons(0, tail(cons(s(0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), isZero(head(cons(0, x1))), tail(cons(0, x1)), tail(x2), cons(0, tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(cons(z0, z1)), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), z1, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(x0, x1), nil, x3) -> c15(IF(isEmpty(cons(x0, x1)), isEmpty(nil), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), nil, cons(p(x0), tail(cons(x0, x1))), cons(inc(head(nil)), tail(nil)), x3, append(x3, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x2), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c15(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), x2, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(head(cons(z0, z1))), z1, nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(nil), isZero(z0), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), nil, x1) -> c15(IF(false, isEmpty(nil), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), nil, cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(nil)), tail(nil)), x1, append(x1, head(nil)))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(isEmpty(cons(z0, z1)), isEmpty(x2), isZero(z0), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(head(cons(x0, x1))), x1, tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(head(cons(z0, z1))), z1, tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(0, x1), x2, x3) -> c15(IF(isEmpty(cons(0, x1)), isEmpty(x2), true, tail(cons(0, x1)), tail(x2), cons(p(head(cons(0, x1))), tail(cons(0, x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(s(z0), x1), x2, x3) -> c15(IF(isEmpty(cons(s(z0), x1)), isEmpty(x2), false, tail(cons(s(z0), x1)), tail(x2), cons(p(head(cons(s(z0), x1))), tail(cons(s(z0), x1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(x0, x1), cons(z0, z1), x3) -> c15(IF(isEmpty(cons(x0, x1)), false, isZero(x0), tail(cons(x0, x1)), tail(cons(z0, z1)), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), x2, x3) -> c15(IF(false, isEmpty(x2), isZero(z0), tail(cons(z0, z1)), tail(x2), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x2)), tail(x2)), x3, append(x3, head(x2)))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c15(IF(false, false, isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(z0, nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), nil, cons(head(nil), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(x0, nil, nil) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), nil, cons(head(nil), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, cons(z0, z1), nil) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), nil, cons(head(cons(z0, z1)), nil))) ADDLISTS(cons(z0, z1), x1, nil) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), nil, cons(head(x1), nil))) ADDLISTS(x0, x1, cons(x2, nil)) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, nil), cons(x2, cons(head(x1), nil)))) ADDLISTS(x0, x1, cons(x2, cons(z0, z1))) -> c16(IF(isEmpty(x0), isEmpty(x1), isZero(head(x0)), tail(x0), tail(x1), cons(p(head(x0)), tail(x0)), cons(inc(head(x1)), tail(x1)), cons(x2, cons(z0, z1)), cons(x2, cons(z0, append(z1, head(x1)))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, z0)))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), tail(nil), cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), nil), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), z1), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(x0, nil, cons(x2, x3)) -> c16(IF(isEmpty(x0), isEmpty(nil), isZero(head(x0)), tail(x0), nil, cons(p(head(x0)), tail(x0)), cons(inc(head(nil)), tail(nil)), cons(x2, x3), cons(x2, append(x3, head(nil))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(head(cons(z0, z1))), z1, tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(x1), isZero(z0), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), cons(x2, x3)) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), cons(x2, x3), cons(x2, append(x3, head(cons(z0, z1)))))) ADDLISTS(cons(z0, z1), x1, cons(x2, x3)) -> c16(IF(false, isEmpty(x1), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(x1), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(x1)), tail(x1)), cons(x2, x3), cons(x2, append(x3, head(x1))))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, z0))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), tail(cons(z0, z1))), x3, append(x3, z0))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), tail(cons(x1, x2))), x3, append(x3, x1))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(z0), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), z1), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(z0), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), isEmpty(cons(z0, z1)), isZero(head(x0)), tail(x0), z1, cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), z1, tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(isEmpty(cons(z0, z1)), isEmpty(cons(x1, x2)), isZero(z0), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) ADDLISTS(x0, cons(z0, z1), x3) -> c16(IF(isEmpty(x0), false, isZero(head(x0)), tail(x0), tail(cons(z0, z1)), cons(p(head(x0)), tail(x0)), cons(inc(head(cons(z0, z1))), z1), x3, append(x3, head(cons(z0, z1))))) ADDLISTS(cons(z0, z1), cons(x1, x2), x3) -> c16(IF(false, isEmpty(cons(x1, x2)), isZero(head(cons(z0, z1))), tail(cons(z0, z1)), tail(cons(x1, x2)), cons(p(head(cons(z0, z1))), tail(cons(z0, z1))), cons(inc(head(cons(x1, x2))), x2), x3, append(x3, head(cons(x1, x2))))) K tuples: ADDLISTS(x0, nil, x2) -> c19(P(head(x0))) ADDLISTS(nil, x1, x2) -> c21(INC(head(x1))) ADDLISTS(nil, x1, x2) -> c23(APPEND(x2, head(x1))) ADDLISTS(x0, nil, x2) -> c23(APPEND(x2, head(nil))) Defined Rule Symbols: isEmpty_1, isZero_1, head_1, tail_1, p_1, inc_1, append_2 Defined Pair Symbols: APPEND_2, P_1, INC_1, IF_9, ADDLISTS_3 Compound Symbols: c8_1, c9_1, c12_1, c27_1, c28_1, c16_1, c17_1, c18_1, c19_2, c19_1, c20_1, c21_2, c21_1, c22_1, c23_2, c23_1, c14_1, c15_1